2つのプロジェクトがあります。それぞれにPythonフォルダがあり、共有ライブラリのPythonファイルとともにlib_pyという名前の別のフォルダがあります。 lib_pyでも共有ライブラリのセットであることに注意してください。各プロジェクトは古い/新しいバージョンのlib_pyファイルを必要とします。そのため、各プロジェクトにlib_pyフォルダが必要です。各main.pyがexample.pyへのアクセスを有するためにPythonでパッケージをインポートするときに競合が発生する
from lib_py.example import x
2つのプロジェクトの両方main.pyで
Project1
Python
lib_py
__init__.py
example.py
main
main.py
Project2
Python
lib_py
__init__.py
example.py
main
main.py
、example.pyは以下のようにインポートさ:階層は以下のようですメイン、右のProject1からmain.pyを呼び出した後のProject1からmain.pyが呼び出され、良いexample.pyが使用されているが、とき:問題はここに起こる
D:\Project1\Python
D:\Project2\Python
:私は私のsys.pathsに2つの次のパスを追加しますProject2の.pyはcaです私はProject2からのexample.pyが使用されることを期待していますが、再びProject1のexample.pyが呼び出されます。
同じ名前のパッケージがいくつか見つかった場合、どのパッケージを使用するべきか正確な方法はありますか? 他にもありますか?
おかげで(のコースディレクトリ階層を変更せずに)
私がArun Gの提案に書いたのと同じ発言: 問題は私がここで説明したスキームは現実の非常に単純なバージョンです。実際、Project1とProject2の階層は複雑(フォルダレベルが多い)で、各プロジェクト内に多くのフォルダがあります。プロジェクトはPythonプロジェクトだけでなく、C++です。だから私があなたの提案したソリューションを使用する場合は、まず多くのフォルダ内に__ init __.pyをたくさん追加する必要があります。そして、第2に、レベルが多いのでインポートがより複雑になります。 –
@pashashadkami、編集を確認してください – onkar
sys.path.appendを使用するのではなく、Project1とProject2の親ディレクトリをPYTHONPATHに追加することができます – Overdrivr