パッケージ名を共有する 2 つの個別のプロジェクトがあります。それらは両方とも PYTHONPATH にない限り問題なく実行されますが、両方が表示されるとすぐに、そのうちの 1 つが自身のプロジェクトでインポートを見つけることができなくなります。
例、次のような 2 つのプロジェクト:
プロジェクト 1:
x/
__init__.py
test.py
foo.py
test.py には次の行が含まれています。
import x.foo
プロジェクト 2:
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 は常にパッケージが見つかった最初のパスのみを使用しますか?
注: インポートを x.foo からインポート foo に変更すると、機能することがわかっています。しかし、どちらのパッケージも変更せずに実行できるかどうかを知りたいです。