2013-03-28 12 views
7

私はPythonでprotobufを使用しているときに、最初にインストールしてsetuptoolsをインストールする必要があるようです。私には、protobufを使ってあらゆる種類のPythonコードを使いたいすべてのマシンにprotobufをインストールしなければならないので、移植性が大幅に制限されているようです。GoogleのprotobufをPythonでインストールせずに使用

私の質問は:これはPythonコードを使って配布することができるように、Pythonのためのprotobufをパッケージする方法はありますか?

これに関する情報は高く評価されます。

答えて

3

パッケージには実験的なC++拡張機能が含まれていますが、セットアップファイルにはPythonファイルが生成されますが、拡張子がデフォルトで無効になっていれば、setup.py buildの結果をスクリプトに含めてください。

Pythonパッケージには、コマンドラインツールをインストールする必要があります。このツールはPythonを生成するために使用されます。

それが利用可能になると、実行します。

cd python 
python setup.py build 

をし、スクリプトの配布にbuild/lib/googleディレクトリをコピーし、それがインポート可能であるためにあなたのsys.pathにする必要があります。

また、setup.py bdist --formats=zipを使用し、結果のzipファイル(dist/protobuf-<version>.<platform>-<architecture>.zipにある)へのパスをsys.pathに追加します。名前を変更すると問題ありません。

パッケージは名前空間を使用しているため、pkg_resourcesモジュールも利用可能である必要があります。これは、名前空間をgoogle/__init__.pyに宣言するためにのみ使用されます。

+0

私はこれを試してみました。あなたは私にジップと卵のファイルで何をすべきかに関するいくつかの指針を教えてください。 PythonPathにそれらを置くだけでは、このトリックを行うようには見えません。 – Cornelius

+0

@Cornelius:私は更新中でした。本当にビルドすれば十分です。 –

+0

ああ、私は最初の推測でしたが、これを行うとエラーメッセージ "ImportError:No pkg_resources"が表示されます。おそらく私はsetuptoolsをインストールしていないからです。これはコマンドラインツールの意味ですか? – Cornelius

関連する問題