使用服务帐户访问Google API oauth2client.client.CryptoUnavailableError:没有可用的加密库

use*_*225 16 google-app-engine google-analytics-api python-2.7

我正在尝试创建一个服务帐户应用,以便我可以使用Python访问Google Analytics API.有两件事令我困惑.首先,当我使用以下代码时:

`from oauth2client.client import SignedJwtAssertionCredentials
client_email = "#####client_email#######.gserviceaccount.com"
with open("XXXXXX.p12") as f:
   private_key = f.read()
credentials = SignedJwtAssertionCredentials(client_email, private_key,'https://www.googleapis.com/auth/sqlservice.admin')`
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

`oauth2client.client.CryptoUnavailableError: No crypto library available`
Run Code Online (Sandbox Code Playgroud)

在做了一些研究之后,我发现这可能与将app域范围的权限授予服务帐户有关.但是,当我登录Google Developers Console时,无法找到安全图标或更多选项按钮.任何帮助非常感谢谢谢.

sha*_*ker 33

这对我来说很有用(没有转换为PEM):

pip install PyOpenSSL
Run Code Online (Sandbox Code Playgroud)

pip freeze 说我有0.15.1版本


Wra*_*arp 13

该错误可能意味着您需要python-openssl包.

apt-get install python-openssl
Run Code Online (Sandbox Code Playgroud)


Nij*_*nan 7

即使您在开发环境中安装了pycrypto和python-ssl库,也需要pycrypto在应用程序的app.yaml文件中添加此库.

libraries:
- name: pycrypto
  version: "latest"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这是我失踪的那件作品.这就是为什么你应该总是阅读不仅仅是接受的答案:) (2认同)