没有可编辑模式,无法导入已安装的模块

问题描述

我在 GitHub Enterprise 上有一个 Python 项目 A,并决定在容器 B 中使用它。所以我为 B 创建了一个 DockerfileFROM python:3.8RUN pip install -r requirements.txt

经过一些尝试和错误后,我注意到只有在条目 import 前面有 git+https://account:token@github.example.com/owner/name-of-A.git@branch#egg=name-of-A(可编辑模式)时,我才能在 A 中-e 我的模块。

  • 使用-e
    • print(importedmodule) 显示 <module 'importedmodule' from '/path/to/B/src/name-of-A/src/importedmodule/__init__.py'>
  • 否则,
    • 虽然我可以在 /usr/local/lib/python3.8/site-packages/name_of_A-0.0.0.dist-info 找到包裹信息,
    • 它的 top_level.txt 是空的,
    • 我在 B 中找不到来自 A 的任何源代码,并且
    • import importedmodule 加注 ModuleNotFoundError: No module named 'importedmodule'

我对 -e 没问题,只是为了完成这项工作,但我不需要 B 中的 A 可编辑。是否存在阻止不可编辑模式工作的原因?

由于原始项目 A 只是一个 main.py 和导入的模块,因此我添加一个简单的 setup.py 和以下 setup.cfg

[Metadata]
name = name-of-A
[options]
package_dir =
    =src

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)