どのように私は手動でpkg_resourcesとディストリビューションを登録することができますか?
-
11-09-2019 - |
質問
私はGoogle App Engineの上にインストールパッケージを取得しようとしています。パッケージはpkg_resources
にかなり広範囲に依存しているが、App Engineの上setup.py
を実行する方法はありません。
がありしかし、ソースには、プラットフォーム固有のコードませんので、単にソースを圧縮し、システムパスのものが含まれるように、それは問題ありません。そして、私はpkg_resources
インストールと同様の作業のバージョンを得てます。
唯一の問題は、パッケージを取得している、実際にをpkg_resources
との登録、それはiter_entry_points
を呼び出したときには、適切なプラグインを見つけることができます。
どのような方法で私はすべての適切なメタデータとsys.path
上のモジュールを登録するために呼び出す必要がない、と私はそのメタデータがあることを必要とするものかを把握できますか?
解決
単に通常どおりにパッケージのsetup.pyを作成し、ソースzipファイルを構築するための「setup.py sdistの--formats =ジップ」を使用します。構築されたソースのzipは、pkg_resourcesによって検索可能になります.egg-infoのメタデータディレクトリが含まれます。代わりに、すべてのあなたのパッケージのためのbdist_eggを使用することができます。
他のヒント
はい、setuptoolsのベースのライブラリを、あなたはそれと一緒に図書館の「卵」のメタデータを展開する必要があります。私が見つけた最も簡単な方法は、あなたを含む全 virtualenvのの環境を展開することですプロジェクトと必要なライブラリます。
私は手動でこのプロセスを行なったし、pkg_resources
が動作するような方法でのsite-packagesフォルダを初期化するをmain.pyためにこのコードを追加します:
import site
site.addsitedir('lib/python2.5/site-packages')
ただし、ほとんどの自動化のappengine-猿を試みることができますあなたのためにこれを。
必要なメタデータが含まれてZipアーカイブを作成しますpython setup.py bdist_egg
実行するローカルの開発システム、オン。あなたのsys.path
にそれを追加し、それが正常に動作する必要があります。