Вопрос: Я пытаюсь установить a Python3 port of Google Protocol Buffers. Когда я делаю python3 setup.py test
я получаю следующее сообщение об ошибке:Синтаксис относительного импорта Python: `from. import abc.xyz`
File "/[*snip*]/python3-protobuf-master/python/google/protobuf/unittest_custom_options_pb2.py", line 13
from . import google.protobuf.descriptor_pb2
^
SyntaxError: invalid syntax
Затем я попробовал подобный синтаксис в обоих моих Python3 и python2 переводчиков и получил ту же ошибку:
Python 3.2.3 (default, Jul 23 2012, 16:48:24)
[GCC 4.5.3] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from . import x.y
File "<stdin>", line 1
from . import x.y
^
SyntaxError: invalid syntax
Вопрос: Когда это from . import abc.xyz
действительный синтаксис Python, если вообще? Мне интересно знать, является ли этот код, который я загрузил, по своей сути искажен.
Разное: Я выбрал этот порт Python3 ГПБ от ответа на this SO question. Это не уточненный в отношении ГПБ, но я ожидал, что он по-прежнему функционировать. Сообщите мне, знаете ли вы о портах Python3 GPB.
Где что 'unittest_custom_options_pb2.py' файл пришел? ЭТО нет в репозитории [GitHub repository] (https://github.com/openx/python3-protobuf/tree/master/python/google/protobuf), на который вы ссылаетесь. –
Возможно, это автогенерируется из [этого файла] (https://github.com/openx/python3-protobuf/blob/master/src/google/protobuf/unittest_custom_options.proto). –
да, строка 1 каждого из двух файлов-нарушителей говорит '# Сгенерировано компилятором буфера протокола. НЕ ИЗМЕНИТЬ! »Но я отредактировал их в любом случае согласно вашему предложению, и« test.py test »работал правильно. – turbulencetoo