4

Python パッケージを複数の debian パッケージ (それぞれに「メイン」パッケージのサブパッケージを含む) から「構築」する必要がある大規模なプロジェクトで、setuptools に問題があります。したがって、「setup.py install」を使用する代わりにファイルを手動でインストールすることにしましたが、使用する場所がわかりません。最初に、インストールする他のものに既に使用している /usr/share 内のディレクトリを使用しました。これは、アプリケーションを開始する前に PYTHONPATH をいじる必要があるという事実を除けば、問題なく機能します。

代わりにパッケージをインストールできるデフォルトの sys.path にある場所はありますか? 私は /usr/lib/python2.6/dist-packages について考えていました (setuptools を使用するときにファイルが終了する場所ですよね?) が、次のような場所に書き込むのは気が進まないのです。これにはカスタム インストール スクリプトを使用します... また、Ubuntu が 2.7 に切り替わった場合、私たちも移動する必要がありますか? このようなことを行うための「ベストプラクティス」はありますか? この site-packages/dist-packages の概念全体は、あまり文書化されていません:(

4

1 に答える 1

2

Python パッケージをどこにインストールする必要があるかを言うのは、実際にはどこにでもインストールできることを考慮すると、ちょっと難しいです。私の意見では、apt-get (aptitude など) によってインストールされていない場合に備えて、それらを /usr/local/share/YOURPACKAGENAME に配置するのが最善の方法です。どちらの場合も、パッケージが配置されている場所へのパスを "sys.path" 変数に挿入する Python スクリプトの周りに小さなラッパーを作成する必要があります。たとえば、Ubuntu の「yum」はデフォルトでファイルを「/usr/share/yum-cli」に配置し、「/usr/bin/yum」スクリプトには次の行が含まれます。

#!/usr/bin/python

...

sys.path.insert(0, '/usr/share/yum-cli')
try:
    import yummain
    yummain.user_main(sys.argv[1:], exit_code=True)
except KeyboardInterrupt, e:
    ...

または、PYTHONPATH 環境変数を設定する必要があります。それは何も悪いことではありません。

于 2010-08-06T21:28:45.127 に答える