Как я могу использовать буферы протокола для Python в Windows?

Я пытался использовать буферы протоколов в своей программе Python, но не могу заставить ее работать. Я использую машину с Windows 8 и пробовал Python 2.7.6 и Python 3.3. Я загрузил компилятор буфера двоичного протокола для Python и использовал его для создания myProto_pb2.py из моего файла myProto.proto, но когда я получаю следующую ошибку при запуске своей программы Python:

из строки «import myProto_pb2» я получаю следующую ошибку при использовании Python 2.7.6 из буферов протокола версии 2.5:

from google.protobuf import descriptor as _descriptor
  ImportError: No module named google.protobuf

Как правильно установить и запустить буферы протокола из Python в Windows?


person user2399973    schedule 17.01.2014    source источник


Ответы (2)


Как правильно установить и запустить буферы протокола из Python в Windows?

Как и любой другой пакет, вы должны установить его, если хотите, чтобы он был установлен. Если вы просто попытаетесь запустить пакет, находящийся в исходном каталоге, это может сработать, но большинство пакетов так не работает; вы, как правило, получаете такие вещи, как пакет верхнего уровня importing, а затем терпит неудачу несколькими строками ниже, когда он пытается import что-то еще… именно так, как вы видите.

Я считаю, что устанавливаемый пакет входит в основной пакет загрузки из GoogleCode. По крайней мере, для исходных пакетов, если не для пакета win32. А внутри каталога python находятся полные инструкции по его установке. В принципе:

C:\path\to\protobuf-2.5.0> cd python
C:\path\to\protobuf-2.5.0\python> python setup.py build
C:\path\to\protobuf-2.5.0\python> python setup.py test
C:\path\to\protobuf-2.5.0\python> python setup.py install

Но если это не входит в состав предварительно собранного пакета win32, или у вас его больше нет, или вы просто предпочитаете установку вне PyPI, он также доступен здесь. Итак, предположим, что у вас установлено pip:

pip install protobuf
person abarnert    schedule 17.01.2014
comment
Спасибо! Кажется, это работает... по какой-то причине я могу запустить свою программу Python из командной строки, такой как Cygwin, но я все еще получаю ошибки импорта при запуске из редактора Idle по умолчанию. - person user2399973; 20.01.2014
comment
@user2399973: user2399973: Я предполагаю, что вы на самом деле установили две установки Python — может быть, cygwin Python и родной win32 Python. Вы правильно установили protobuf в cygwin Python, поэтому он работает, когда вы запускаете cygwin Python из командной строки, но вы не установили его в собственный Python, поэтому он не работает при запуске IDLE собственного Python. . Но на самом деле это всего лишь предположение. Опубликуйте новый вопрос, опишите свои настройки, покажите фактическое сообщение об ошибке (с трассировкой, если таковая имеется), а не просто опишите ее и т. д. - person abarnert; 20.01.2014

проверьте это установка python protobuf для окон

person Aishwarya Patil    schedule 22.01.2021