1. ホーム
  2. python

[解決済み] PYTHONPATHとsys.pathの比較

2023-01-10 20:31:50

質問

他の開発者と私は PYTHONPATHsys.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 なのか、それともどちらでも良いのでしょうか?

どのように解決するのですか?

パスを変更する唯一の理由が、開発者が自分の作業ツリーから作業することであるなら、インストールツールを使って環境をセットアップする必要があります。 virtualenv は非常に人気があり、setuptools を使っている場合は、単に setup.py develop を実行するだけで、現在の Python インストールに作業ツリーを半強制的にインストールすることができます。