別の開発者と私は、PYTHONPATHとsys.pathのどちらを使用して、Pythonがユーザー(たとえば、開発)ディレクトリのPythonパッケージを検索できるようにするかについて意見が異なります。
典型的なディレクトリ構造を持つPythonプロジェクトがあります。
Project
setup.py
package
__init__.py
lib.py
script.py
script.pyでは、次のようにする必要がありますimport package.lib
。パッケージがsite-packagesにインストールされている場合、script.pyはを見つけることができますpackage.lib
。
ただし、ユーザーディレクトリから作業する場合は、他に何かする必要があります。私の解決策は、PYTHONPATHに "〜/ Project"を含めるように設定することです。別の開発者は、script.pyの最初にこのコード行を配置したいと考えています。
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Pythonがのローカルコピーを見つけられるようにしますpackage.lib
。
この行は、開発者またはローカルコピーから実行している人々にのみ役立つため、これは悪い考えだと思いますが、それが悪い考えである正当な理由を述べることはできません。
PYTOHNPATH、sys.pathを使用する必要がありますか、それとも問題ありませんか?