1

私は、適度に技術的でないユーザーによって消費され、いくつかのprotobufsとインターフェースする必要がある小さなpythonユーティリティを書いています。

理想的には、ローカルマシンでこれを使用するための唯一の前提条件は次のとおりです。

Pythonをインストールします

* have an SVN checkout of the repository
* run a simple bash script to build the local proto .py definitions
* run "python myutility"

私はdescriptor_pb2.py、thoのインポートに関して問題にぶつかっています。Google Protocol Buffersを使用しているときに「名前descriptor_pb2をインポートできません」というエラーが表示されるのはなぜですか?、ただし、protoSDKインストーラーを実行するための追加の前提条件を追加することは避けたいと思います。ローカル階層でdescriptor_pb2.pyも生成するようにbashスクリプトを変更しました。これは、他の_pb2.pyファイルからのインポートの最初のレベルで機能しますが、descriptor_pb2.py自体がdescriptor_pb2をインポートしようとしていないようです。それ:

    $ python myutility.py
Traceback (most recent call last):
  File "myutility.py", line 4, in <module>
    import protos.myProto_pb2
  File "/myPath/protos/myProto_pb2.py", line 8, in <module>
    from google.protobuf import descriptor_pb2
  File "/myPath/google/protobuf/descriptor_pb2.py", line 8, in <module>
    from google.protobuf import descriptor_pb2
ImportError: cannot import name descriptor_pb2

私のローカルフォルダは次のようになります:

* myutility.py
* google/
  * protobuf/
    * descriptor.py
    * descriptor_pb2.py
* protos
  * myProto_ob2.py

また、私はpython n00bなので、明らかな何かを見落としている可能性があります。

ティア、オリオン

4

2 に答える 2

0

ファイル__init__。pyはgoogle/protobufディレクトリに存在しますか?

于 2011-01-11T02:37:19.247 に答える
0

記述子_pb2.py自体のdescriptor_pb2.pyのインポートをコメントアウトすると、私の問題が修正されました。それを提案してくれたtimmcclarrenに感謝します!

于 2011-01-11T21:49:35.463 に答える