当我尝试使用python3安装protobuf时,我输入命令
➜ python setup.py build
得到这个恼人的错误信息。
Download error on http://code.google.com/p/google-apputils-python: timed out -- Some packages may not be found!
File "build/bdist.linux-x86_64/egg/google/apputils/app.py", line 95
print 'Try --helpfull to get a list of all flags.'
^
SyntaxError: Missing parentheses in call to 'print'
File "build/bdist.linux-x86_64/egg/google/apputils/basetest.py", line 1063
0600)
^
SyntaxError: invalid token
File "build/bdist.linux-x86_64/egg/google/apputils/file_util.py", line 45
def Write(filename, contents, overwrite_existing=True, mode=0666, gid=None):
^
SyntaxError: invalid token
File "build/bdist.linux-x86_64/egg/google/apputils/appcommands.py", line 299
except app.UsageError, error:
^
SyntaxError: invalid syntax
File "build/bdist.linux-x86_64/egg/google/apputils/run_script_module.py", line 122
print 'Stub script %s (auto-generated). Options:' % sys.argv[0]
^
SyntaxError: invalid syntax
zip_safe flag not set; analyzing archive contents...
google.__pycache__.__init__.cpython-34: module references __path__
google.apputils.__pycache__.__init__.cpython-34: module references __path__
google.apputils.__pycache__.setup_command.cpython-34: module references __file__
File "/home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg/google/apputils/app.py", line 95
print 'Try --helpfull to get a list of all flags.'
^
SyntaxError: Missing parentheses in call to 'print'
File "/home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg/google/apputils/basetest.py", line 1063
0600)
^
SyntaxError: invalid token
File "/home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg/google/apputils/file_util.py", line 45
def Write(filename, contents, overwrite_existing=True, mode=0666, gid=None):
^
SyntaxError: invalid token
File "/home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg/google/apputils/appcommands.py", line 299
except app.UsageError, error:
^
SyntaxError: invalid syntax
File "/home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg/google/apputils/run_script_module.py", line 122
print 'Stub script %s (auto-generated). Options:' % sys.argv[0]
^
SyntaxError: invalid syntax
Installed /home/sptzxb/Downloads/protobuf-2.6.1/python/.eggs/google_apputils-0.4.2-py3.4.egg
Searching for python-gflags>=1.4
Reading https://pypi.python.org/simple/python-gflags/
Reading http://code.google.com/p/python-gflags
Traceback (most recent call last):
File "setup.py", line 200, in <module>
"Protocol Buffers are Google's data interchange format.",
File "/usr/lib/python3.4/distutils/core.py", line 108, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 268, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 313, in fetch_build_eggs
replace_conflicting=True,
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 836, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1081, in best_match
return self.obtain(req, installer)
File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 1093, in obtain
return installer(requirement)
File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 380, in fetch_build_egg
return cmd.easy_install(req)
File "/usr/lib/python3/dist-packages/setuptools/command/easy_install.py", line 649, in easy_install
not self.always_copy, self.local_index
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 590, in fetch_distribution
self.find_packages(requirement)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 427, in find_packages
self.scan_url(self.index_url + requirement.unsafe_name+'/')
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 761, in scan_url
self.process_url(url, True)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 325, in process_url
page = self.process_index(url, page)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 404, in process_index
self.scan_url(new_url)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 761, in scan_url
self.process_url(url, True)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 304, in process_url
f = self.open_url(url, "Download error on %s: %%s -- Some packages may not be found!" % url)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 700, in open_url
return open_with_auth(url, self.opener)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 894, in _socket_timeout
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/setuptools/package_index.py", line 1007, in open_with_auth
fp = opener(request)
File "/usr/lib/python3.4/urllib/request.py", line 464, in open
response = self._open(req, data)
File "/usr/lib/python3.4/urllib/request.py", line 482, in _open
'_open', req)
File "/usr/lib/python3.4/urllib/request.py", line 442, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 1211, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib/python3.4/urllib/request.py", line 1186, in do_open
r = h.getresponse()
File "/usr/lib/python3.4/http/client.py", line 1227, in getresponse
response.begin()
File "/usr/lib/python3.4/http/client.py", line 386, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.4/http/client.py", line 348, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
File "/usr/lib/python3.4/socket.py", line 374, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [Errno 104] Connection reset by peer
那是不是意味着protobuf还没有支持python3呢?我发现setup.py是用python2语法编写的。
我能以某种方式在python3中使用protobuf模块吗?
答案 0 :(得分:0)
您正在使用protobuf 2.6.1,它仅通过2to3翻译支持Python 3。
您需要安装v3.0.0-beta-1 release才能获得Python 3支持。