Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌GMail API‘installed’应用程序显示模块SSL.py的IOError 13 w/o sudo_Python_Ssl_Privileges_Gmail Api - Fatal编程技术网

Python 谷歌GMail API‘installed’应用程序显示模块SSL.py的IOError 13 w/o sudo

Python 谷歌GMail API‘installed’应用程序显示模块SSL.py的IOError 13 w/o sudo,python,ssl,privileges,gmail-api,Python,Ssl,Privileges,Gmail Api,我正在玩GMAIL API创建一个应用程序,从我的服务器发送自动电子邮件。以简单用户身份运行我的应用程序会产生以下结果: pankgeorg@snf-25181:~/tomotech/gmailer$ python mailer.py Traceback (most recent call last): File "mailer.py", line 36, in <module> gmail_service = build('gmail', 'v1', http=http

我正在玩GMAIL API创建一个应用程序,从我的服务器发送自动电子邮件。以简单用户身份运行我的应用程序会产生以下结果:

pankgeorg@snf-25181:~/tomotech/gmailer$ python mailer.py
Traceback (most recent call last):
  File "mailer.py", line 36, in <module>
    gmail_service = build('gmail', 'v1', http=http)
  File "/usr/local/lib/python2.7/dist-packages/oauth2client-1.4.5-py2.7.egg/oauth2client/util.py", line 135, in positional_wrapper
  File "/usr/local/lib/python2.7/dist-packages/google_api_python_client-1.3.1-py2.7.egg/googleapiclient/discovery.py", line 198, in build
  File "/usr/local/lib/python2.7/dist-packages/oauth2client-1.4.5-py2.7.egg/oauth2client/util.py", line 135, in positional_wrapper
  File "/usr/local/lib/python2.7/dist-packages/oauth2client-1.4.5-py2.7.egg/oauth2client/client.py", line 547, in new_request
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.9-py2.7.egg/httplib2/__init__.py", line 1593, 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.9-py2.7.egg/httplib2/__init__.py", line 1335, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.9-py2.7.egg/httplib2/__init__.py", line 1257, in _conn_request
    conn.connect()
  File "/usr/local/lib/python2.7/dist-packages/httplib2-0.9-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.9-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 886, in wrap_socket
    ciphers=ciphers)
  File "/usr/lib/python2.7/ssl.py", line 496, in __init__
    self._context.load_verify_locations(ca_certs)
IOError: [Errno 13] Permission denied
老实说,为了使用
--noauth_local_webserver
进行身份验证,我再次对自己运行sudo、authenticated和
chown
gmail.storage命令。 另外,我使用
easy\u install
安装,因为
pip install
给了我以下错误:

pankgeorg@snf-25181:~/tomotech/gmailer$ sudo pip install --upgrade google_api_python_client
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/local/lib/python2.7/dist-packages/pip/req.py", line 1096, in prepare_files
    req_to_install, self.upgrade)
  File "/usr/local/lib/python2.7/dist-packages/pip/index.py", line 194, in find_requirement
    page = self._get_page(main_index_url, req)
  File "/usr/local/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_page
    session=self.session,
  File "/usr/local/lib/python2.7/dist-packages/pip/index.py", line 670, in get_page
    resp = session.get(url, headers={"Accept": "text/html"})
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/sessions.py", line 395, in get
    return self.request('GET', url, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 237, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/sessions.py", line 383, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/sessions.py", line 506, in send
    history = [resp for resp in gen] if allow_redirects else []
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/sessions.py", line 168, in resolve_redirects
    allow_redirects=False,
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/sessions.py", line 486, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/adapters.py", line 330, in send
    timeout=timeout
  File "/usr/local/lib/python2.7/dist-    packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 480, in urlopen
    body=body, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/connectionpool.py", line 285, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python2.7/httplib.py", line 1001, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1035, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 997, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 850, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 826, in send
    self.sock.sendall(data)
  File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py", line 323, in sendall
    return self.connection.sendall(data)
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 969, in sendall
    raise TypeError("buf must be a byte string")
TypeError: buf must be a byte string

Storing debug log for failure in /root/.pip/pip.logrom oath2client import tool
我的理解是,在这两种情况下,问题的根源是相同的。 我还需要注意的是,我的笔记本电脑(我可以在webbrowser上正常进行身份验证,而不是--noauth_local_webserver)工作正常,即使安装方式相同(pip的问题也出现在那里)

提前谢谢,很抱歉发了这么长的帖子! 我使用的教程:
应用程序主体几乎是gmail api的快速启动程序。

httplib2安装程序为其
httplib2/cacerts.txt
文件设置了不正确的权限。一种解决方案是通过运行

chmod o+r -R  /usr/local/lib/python2.7/dist-packages/httplib2-0.9-py2.7.egg
但是,最好卸载由pip安装的版本,改用操作系统的软件包管理器,它可能对所有文件都有正确的权限。在Debian上,这可以通过

pip uninstall httplib2
apt-get install python-httplib2

httplib2安装程序为其
httplib2/cacerts.txt
文件设置了不正确的权限。一种解决方案是通过运行

chmod o+r -R  /usr/local/lib/python2.7/dist-packages/httplib2-0.9-py2.7.egg
但是,最好卸载由pip安装的版本,改用操作系统的软件包管理器,它可能对所有文件都有正确的权限。在Debian上,这可以通过

pip uninstall httplib2
apt-get install python-httplib2

不知道为什么有人给了这个-1。。在OSX上为我解决了这个问题:sudo chmod o+r/Library/Python/2.7/site-packages/httplib2-0.9.1-py2.7.egg/httplib2/cacerts.txtsudo chmod o+r/Library/Python/2.7/site-packages/httplib2-0.9.1-py2.7.egg/h‌​ttplib2/cacerts.txt在osx 10.11.6中工作。在我的例子中,我安装了两个版本,我不知道为什么
pip卸载httplib2
删除了旧版本(刚刚安装)并恢复正常。确保你阅读了pip正在删除的版本,否则事情可能会很糟糕。不知道为什么有人会给出-1。。在OSX上为我解决了这个问题:sudo chmod o+r/Library/Python/2.7/site-packages/httplib2-0.9.1-py2.7.egg/httplib2/cacerts.txtsudo chmod o+r/Library/Python/2.7/site-packages/httplib2-0.9.1-py2.7.egg/h‌​ttplib2/cacerts.txt在osx 10.11.6中工作。在我的例子中,我安装了两个版本,我不知道为什么
pip卸载httplib2
删除了旧版本(刚刚安装)并恢复正常。请务必阅读正在删除的pip版本,否则可能会导致糟糕的结局。