我在 GitHub Enterprise 上有一个 Python 项目 A,并决定在容器 B 中使用它。所以我为 B 创建了一个 Dockerfile
,FROM python:3.8
和 RUN 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
是空的,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