2009-03-01 5 views
1

Google App Engineにパッケージをインストールしようとしています。パッケージは、かなり広範囲にpkg_resourcesに依存していますが、setup.pyをApp Engineで実行する方法はありません。pkg_resourcesで手動でディストリビューションを登録するにはどうしたらいいですか?

ソースにはプラットフォーム固有のコードはありませんので、ソースを圧縮してシステムパスに含めても問題ありません。そして、私はpkg_resourcesのバージョンをインストールし、同様に働いています。

唯一の問題は、実際には、それがiter_entry_pointsを呼び出したときに、それは適切なプラグインを見つけることができますpkg_resourcesを登録したパッケージを取得しています。

sys.pathに登録モジュールを呼び出すには、適切なすべてのメタデータを使用するためにどのような方法が必要ですか。どのようにメタデータが必要なのかを把握するにはどうすればよいですか?

答えて

0

通常と同じようにパッケージのsetup.pyを作成し、 "setup.py sdist --formats = zip"を使用してソースzipをビルドします。ビルドされたソースzipには.egg-infoメタデータディレクトリが含まれ、pkg_resourcesによってそのディレクトリが検索されます。また、すべてのパッケージにbdist_eggを使用することもできます。

1

はい、setuptoolsベースのライブラリの場合は、ライブラリの「Egg」メタデータも一緒に配備する必要があります。私が見つけた最も簡単な方法は、あなたのプロジェクトと必要なライブラリを含むvirtualenvの環境全体を展開することです。私は手動でこのプロセスを行なったし、pkg_resourcesが動作するような方法でのsite-packagesフォルダを初期化するをmain.pyためにこのコードを追加

import site 
site.addsitedir('lib/python2.5/site-packages') 

をしかし、あなたはこの最も自動化されappengine-monkeyを試みることができますあなたのために。

0

ローカル開発システムでは、python setup.py bdist_eggを実行すると、必要なメタデータを含むZipアーカイブが作成されます。 sys.pathに追加してください。正しく動作するはずです。

関連する問題