Я пишу небольшую утилиту Python, которая будет использоваться умеренно нетехническими пользователями и которая должна взаимодействовать с некоторыми protobufs.
в идеале я хотел бы, чтобы единственными предпосылками для использования этого на локальной машине были:
установлен питон
* 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, хотя. я видел Почему я вижу, что не могу импортировать ошибку имени descriptor_pb2 при использовании буферов протокола Google?, но хотел бы избежать добавления дополнительных предварительное условие запуска установщика proto SDK. я изменил сценарий bash, чтобы он также генерировал descriptor_pb2.py в локальной иерархии, которая работает для первого уровня импорта из других моих файлов _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
Кроме того, я питон n00b, поэтому, возможно, я упускаю из виду что-то очевидное.
Тиа, Орион