google-api-python-client不起作用,并使Spyder在启动时失败 [英] google-api-python-client doesn't work and makes Spyder to fail when starting

查看:235
本文介绍了google-api-python-client不起作用,并使Spyder在启动时失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Ubuntu 13.04上安装了google-api-python-client,其中包含

$ sudo easy_install --upgrade google-api- python-client

就像 here。



之后,我尝试将python中的某些内容与它。我从此处

 >>> from apiclient.discovery import build 
>>> service = build('translate','v2',developerKey ='MyApiKey')
Traceback(最近一次调用最后一次):
< module>中的文件< stdin>,第1行。
文件/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/oauth2client/util.py,第128行,位置位置包装器
返回包装( *参数,** kwargs)
文件/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/apiclient/discovery.py,行192
resp,content = http.request(requested_url)
文件/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py
(response,content)= self._request(conn,authority,uri,request_uri,method,body,headers,redirections,cachekey)
文件/ usr / local / lib / python2.7 / dist-packages / httplib2-0.8-py2.7.egg / httplib2 / __ init__.py,第1317行,在_request
(response,content)= self._conn_request(conn,request_uri,方法,正文,头文件)
文件/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py,行1252,in _conn_request
conn.connect()
文件/ u sr / local / lib / python2.7 / dist-packages / httplib2-0.8-py2.7.egg / httplib2 / __ init__.py,第1021行,连接
self.disable_ssl_certificate_validation,self.ca_certs)
文件/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py,第80行,位于_ssl_wrap_socket
cert_reqs = cert_reqs,ca_certs = ca_certs)
文件/usr/lib/python2.7/ssl.py,第440行,在wrap_socket中
ciphers = ciphers)
文件/usr/lib/python2.7 /ssl.py,第198行,位于__init__
密码)
ssl.SSLError:[Errno 185090050] _ssl.c:340:错误:0B084002:x509证书例程:X509_load_cert_crl_file:系统库

有什么不对?

其实,我第一次想要在Spyder中做到这一点,但未能开始:

  ilya @ ilya-laptop:〜/ Projects / online-translator $ spyder 
Traceback(最近一次调用最后一次):
在< module>文件中,第3行的文件/ usr / bin / spyder
start_app.main()
文件/usr/lib/python2.7/dist-packages/spyderlib/start_app.py,第64行,在主要
中从spyderlib导入spyder
文件/usr/lib/python2.7/dist-packages/spyderlib/spyder.py,第97行,位于< module>
from spyderlib.plugins.inspector import ObjectInspector
文件/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py,第36行,位于< module>
from spyderlib.widgets.ipython import IPythonControlWidget
在< module>文件中的/usr/lib/python2.7/dist-packages/spyderlib/widgets/ipython.py,第12行。
from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/rich_ipython_widget.py,第20行,在< module>
from ipython_widget import IPythonWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/ipython_widget.py,第25行,位于< module>
from frontend_widget import FrontendWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/frontend_widget.py,第10行,位于< module>
from pygments.lexers import PythonLexer
文件/usr/lib/python2.7/dist-packages/pygments/lexers/__init__.py,第18行,位于< module>
from pygments.plugin import find_plugin_lexers
文件/usr/lib/python2.7/dist-packages/pygments/plugin.py,第39行,位于< module>
导入pkg_resources
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2823行,位于< module>
add_activation_listener(lambda dist:dist.activate())
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第710行,订阅
callback( dist)
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2823行,在< lambda>
add_activation_listener(lambda dist:dist.activate())
激活
self的文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2255行。 insert_on(path)
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2362行,在insert_on
self.check_version_conflict()
文件/ usr /lib/python2.7/dist-packages/pkg_resources.py,第2401行,在check_version_conflict中
为self._get_metadata('top_level.txt')中的modname:
文件/ usr / lib / python2.7 / dist-packages / pkg_resources.py,第2249行,在_get_metadata
中用于self.get_metadata_lines(name)中的行:
文件/usr/lib/python2.7/dist-packages /pkg_resources.py,第1219行,在get_metadata_lines
返回yield_lines(self.get_metadata(name))
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,行1211,在get_metadata
中返回self._get(self._fn(self.egg_info,name))
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第1326行,在_ get
stream = open(path,'rb')
IOError:[Errno 13] Permission denied:'/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2。 7.egg / EGG-INFO / top_level.txt'
Traceback(最近一次调用的最后一个):
在< module>文件中的/ usr / bin / spyder,第3行。
start_app.main()
文件/usr/lib/python2.7/dist-packages/spyderlib/start_app.py,第64行,在主要
中从spyderlib导入spyder
文件/usr/lib/python2.7/dist-packages/spyderlib/spyder.py,第97行,位于< module>
from spyderlib.plugins.inspector import ObjectInspector
文件/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py,第36行,位于< module>
from spyderlib.widgets.ipython import IPythonControlWidget
在< module>文件中的/usr/lib/python2.7/dist-packages/spyderlib/widgets/ipython.py,第12行。
from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/rich_ipython_widget.py,第20行,在< module>
from ipython_widget import IPythonWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/ipython_widget.py,第25行,位于< module>
from frontend_widget import FrontendWidget
文件/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/frontend_widget.py,第10行,位于< module>
from pygments.lexers import PythonLexer
文件/usr/lib/python2.7/dist-packages/pygments/lexers/__init__.py,第18行,位于< module>
from pygments.plugin import find_plugin_lexers
文件/usr/lib/python2.7/dist-packages/pygments/plugin.py,第39行,位于< module>
导入pkg_resources
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2823行,位于< module>
add_activation_listener(lambda dist:dist.activate())
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第710行,订阅
callback( dist)
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2823行,在< lambda>
add_activation_listener(lambda dist:dist.activate())
激活
self的文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2255行。 insert_on(path)
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第2362行,在insert_on
self.check_version_conflict()
文件/ usr /lib/python2.7/dist-packages/pkg_resources.py,第2401行,在check_version_conflict中
为self._get_metadata('top_level.txt')中的modname:
文件/ usr / lib / python2.7 / dist-packages / pkg_resources.py,第2249行,在_get_metadata
中用于self.get_metadata_lines(name)中的行:
文件/usr/lib/python2.7/dist-packages /pkg_resources.py,第1219行,在get_metadata_lines
返回yield_lines(self.get_metadata(name))
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,行1211,在get_metadata
中返回self._get(self._fn(self.egg_info,name))
文件/usr/lib/python2.7/dist-packages/pkg_resources.py,第1326行,在_ get
stream = open(path,'rb')
IOError:[Errno 13] Permission denied:'/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2。 7.egg / EGG-INFO / top_level.txt'

因此,不知何故,google_api_python_client会干扰它的启动。谷歌API绑定到Python的WTF是错误的?还是和我一起?



请帮助。

解决方案

试图启动Spyder,它看起来像Google API Python客户端无法使用正确的权限进行安装。更确切地说,Spyder试图从IPython中加载使用Pygments语法突出显示器的组件。 Pygments尝试使用 pkg_resources 模块自动发现包,但它无法读取 google_api_python_client 蛋,因为权限问题。我怀疑如果你试图以root身份运行Spyder,它可能会启动。



显然,这个问题有很多潜在的来源。这可能是因为Google软件包没有正确构建,如此处所述,或者它如 setuptools nofollow的>此处。您可以尝试删除 google_api_python_client 并通过 pip 重新安装。无论如何,删除 google_api_python_client 应该允许Spyder再次正常启动。


I installed google-api-python-client on my Ubuntu 13.04 with

sudo easy_install --upgrade google-api-python-client

as it is said here.

After that I tried to translate something in python with it. I took the code from here.

>>> from apiclient.discovery import build
>>> service = build('translate', 'v2', developerKey='MyApiKey')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/oauth2client/util.py", line 128, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/apiclient/discovery.py", line 192, in build
    resp, content = http.request(requested_url)
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py", line 1570, in request
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py", line 1317, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py", line 1252, in _conn_request
    conn.connect()
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py", line 1021, in connect
    self.disable_ssl_certificate_validation, self.ca_certs)
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.8-py2.7.egg/httplib2/__init__.py", line 80, in _ssl_wrap_socket
    cert_reqs=cert_reqs, ca_certs=ca_certs)
  File "/usr/lib/python2.7/ssl.py", line 440, in wrap_socket
    ciphers=ciphers)
  File "/usr/lib/python2.7/ssl.py", line 198, in __init__
    ciphers)
ssl.SSLError: [Errno 185090050] _ssl.c:340: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

What is wrong?

Actually, I first wanted to do that in Spyder, but it failed to start:

ilya@ilya-laptop:~/Projects/online-translator$ spyder
Traceback (most recent call last):
  File "/usr/bin/spyder", line 3, in <module>
    start_app.main()
  File "/usr/lib/python2.7/dist-packages/spyderlib/start_app.py", line 64, in main
    from spyderlib import spyder
  File "/usr/lib/python2.7/dist-packages/spyderlib/spyder.py", line 97, in <module>
    from spyderlib.plugins.inspector import ObjectInspector
  File "/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py", line 36, in <module>
    from spyderlib.widgets.ipython import IPythonControlWidget
  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/ipython.py", line 12, in <module>
    from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/rich_ipython_widget.py", line 20, in <module>
    from ipython_widget import IPythonWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/ipython_widget.py", line 25, in <module>
    from frontend_widget import FrontendWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/frontend_widget.py", line 10, in <module>
    from pygments.lexers import PythonLexer
  File "/usr/lib/python2.7/dist-packages/pygments/lexers/__init__.py", line 18, in <module>
    from pygments.plugin import find_plugin_lexers
  File "/usr/lib/python2.7/dist-packages/pygments/plugin.py", line 39, in <module>
    import pkg_resources
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <module>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 710, in subscribe
    callback(dist)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <lambda>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2255, in activate
    self.insert_on(path)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2362, in insert_on
    self.check_version_conflict()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2401, in check_version_conflict
    for modname in self._get_metadata('top_level.txt'):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2249, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1219, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1211, in get_metadata
    return self._get(self._fn(self.egg_info,name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1326, in _get
    stream = open(path, 'rb')
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/EGG-INFO/top_level.txt'
Traceback (most recent call last):
  File "/usr/bin/spyder", line 3, in <module>
    start_app.main()
  File "/usr/lib/python2.7/dist-packages/spyderlib/start_app.py", line 64, in main
    from spyderlib import spyder
  File "/usr/lib/python2.7/dist-packages/spyderlib/spyder.py", line 97, in <module>
    from spyderlib.plugins.inspector import ObjectInspector
  File "/usr/lib/python2.7/dist-packages/spyderlib/plugins/inspector.py", line 36, in <module>
    from spyderlib.widgets.ipython import IPythonControlWidget
  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/ipython.py", line 12, in <module>
    from IPython.frontend.qt.console.rich_ipython_widget import RichIPythonWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/rich_ipython_widget.py", line 20, in <module>
    from ipython_widget import IPythonWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/ipython_widget.py", line 25, in <module>
    from frontend_widget import FrontendWidget
  File "/usr/lib/python2.7/dist-packages/IPython/frontend/qt/console/frontend_widget.py", line 10, in <module>
    from pygments.lexers import PythonLexer
  File "/usr/lib/python2.7/dist-packages/pygments/lexers/__init__.py", line 18, in <module>
    from pygments.plugin import find_plugin_lexers
  File "/usr/lib/python2.7/dist-packages/pygments/plugin.py", line 39, in <module>
    import pkg_resources
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <module>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 710, in subscribe
    callback(dist)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2823, in <lambda>
    add_activation_listener(lambda dist: dist.activate())
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2255, in activate
    self.insert_on(path)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2362, in insert_on
    self.check_version_conflict()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2401, in check_version_conflict
    for modname in self._get_metadata('top_level.txt'):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2249, in _get_metadata
    for line in self.get_metadata_lines(name):
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1219, in get_metadata_lines
    return yield_lines(self.get_metadata(name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1211, in get_metadata
    return self._get(self._fn(self.egg_info,name))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1326, in _get
    stream = open(path, 'rb')
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.1-py2.7.egg/EGG-INFO/top_level.txt'

So somehow, google_api_python_client interferes with it's starting. WTF is wrong with google API bindings to python? Or with me?

Please, help.

解决方案

From the traceback you received when trying to start Spyder, it looks like the Google API Python client has failed to install with the correct permissions. More precisely, Spyder is attempting to load components from IPython which make use of the Pygments syntax highlighter. Pygments is attempting to auto-discover packages using the pkg_resources module, but it can't read the google_api_python_client egg because of a permissions issue. I suspect that if you attempt to run Spyder as root it might launch okay.

Apparently, there are multiple potential sources of this problem. It can happen either because the Google package simply isn't built correctly, as described here, or it might be that you have another version of setuptools lingering somewhere, as described here. You might try removing google_api_python_client and re-installing via pip. In any case, removing google_api_python_client should allow Spyder to start normally again.

这篇关于google-api-python-client不起作用,并使Spyder在启动时失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆