我有两个共享包名称的单独项目。只要它们不在 PYTHONPATH 上,它们就可以运行,但是一旦它们都出现,它们中的一个就无法在自己的项目中找到导入。
例如,两个这样的项目:
项目一:
x/
__init__.py
test.py
foo.py
test.py 包含以下行:
import x.foo
项目二:
x/
__init__.py
bar.py
如果我跑
PYTHONPATH=. python x/y/test.py
没有错误。但如果我跑
PYTHONPATH='pathtoproject2:.' python x/test.py
我得到错误:
Traceback (most recent call last):
File "x/test.py", line 1, in <module>
import x.foo
ImportError: No module named foo
有没有办法让具有公共包的不同 Python 项目共享 PYTHONPATH?还是 Python 总是只使用找到包的第一个路径?
注意:我知道如果您将 import from x.foo 修改为 import foo 那么它将起作用。但我想知道是否可以在不修改任何一个包的情况下做到这一点。