開発環境を管理するために pip と virtualenv を使用している Django アプリケーションを作成しています。
依存関係の 1 つであるpkgme には、その「バックエンド」である多くのデータ ファイルが付属しており、setup.py でdata_files=$FOO
(ではなくpackage_data
) で構成されています。
pkgme がそのバックエンドを探すとき、os.path.join(sys.prefix, "share", "pkgme", "backends")
. これは、pkgme が正常にインストールされている場合はうまく機能し、ドキュメントと一致しているように見えますが、pkgme が Egg としてインストールされている場合は機能しません。
そこでは、データ ファイルは、予期されていたので$VIRTUAL_ENV/lib/python2.7/site-packages/pkgme-0.1-py2.7.egg/share
はなく、下にインストールされ$VIRTUAL_ENV/share
ます。
これにより、2 つの質問が残ります。
os.path.join
Eggインストールを使用しているか、従来のシステム インストールを使用しているかに関係なく、上記以外のものを使用してデータ ファイルを検索する必要がありますか? もしそうなら、何?- Egg でデータ ファイルをより簡単に利用できるようにするには、データ ファイルを別の方法で配布する必要がありますか?
については知ってpkgutil.get_data
いますが、使用したくないことに注意してください。私はこれらのデータ ファイルの内容には興味がありません。その場所を知りたいので、それらを実行できます。
私の現在の計画はこれを行うことです:
package_data
の代わりに使用data_files
pkgme.__file__
ではなく、相対的なバックエンドを探すように pkgme を変更します。sys.prefix