0

gtfs_realtime_pb2.py (Google のプロトコル バッファを介して gtfs-realtime.proto を実行して生成された Python コード) を実行しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    from google.protobuf import descriptor
ImportError: No module named 'google'

これは、私が問題を抱えている特定のコードへのリンクです: https://github.com/mattwigway/gtfsrdb

Google のプロトコル バッファのインストールへのリンク:
https://developers.google.com/protocol-buffers/

私はバッファを正しくインストールしたと確信していますが、なぜこのモジュールが見つからないのですか?

4

1 に答える 1

0

プロトコル バッファに含まれているのは、descriptor.protoです。この proto の Python コードは、インストール プロセスの一部として生成されているはずです。

使用しているプロトコル バッファは descriptor.proto を使用するため、それが存在するディレクトリを --proto_path= パラメータを介して含める必要があります ( Java プロトコル バッファに「google/protobuf/descriptor.proto」をインポートするを参照)。

ウィンドウ システムの場合、インストール ディレクトリは配置した場所になります。* nixの場合、おそらくから取得した回答になります

    /usr/include/descriptor.proto
また
    /usr/local/include/descriptor.proto

つまり、Javaの場合、次のようにします

protoc addressbookSD.proto --java_out=./ --proto_path=./ --proto_path=<protobuf-install-directory>/src

<protobuf-install-directory>は、プロトコル バッファのインストール ディレクトリです。重要なポイントは、descriptor.proto が入っていることです。

<protobuf-install-directory>\src\google\protobuf
于 2015-01-22T05:17:00.453 に答える