我正在尝试创建一个服务帐户应用,以便我可以使用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')`
我收到以下错误:
`oauth2client.client.CryptoUnavailableError: No crypto library available`
在做了一些研究之后,我发现这可能与将app域范围的权限授予服务帐户有关。但是,当我登录Google Developers Console时,无法找到安全图标或更多选项按钮。任何帮助非常感谢谢谢。
答案 0 :(得分:32)
这对我有用(不转换为PEM):
pip install PyOpenSSL
pip freeze
说我的版本为0.15.1
答案 1 :(得分:13)
该错误可能意味着您需要python-openssl包。
apt-get install python-openssl
答案 2 :(得分:7)
即使你已经安装了pycrypto&您的开发环境中的python-ssl库,您需要在应用程序的pycrypto
文件中添加此app.yaml
库。
libraries:
- name: pycrypto
version: "latest"
答案 3 :(得分:4)
我最近刚设置了它,但选择使用PyCrypto 2.6.1,但您也可以使用上一个答案中提到的python-openssl。
我遇到的唯一问题是我无法确定这一问题,但Google Developer Console生成的P12密钥并未使用我的服务帐户API调用(内容API购物),我不得不将密钥切换到PEM格式以使事情顺利进行。
我的设置:(Win7,python 2.7.x,PyCrypto 2.6.1)
尝试使用P12键时遇到的错误,但后来在将其转换为PEM时解决了:
错误3:PyCrypto库不支持PKCS12格式。 NotImplementedError:PyCrypto库不支持PKCS12格式。尝试转换为“PEM”(openssl pkcs12 -in xxxxx.p12 -nodes -nocerts> privatekey.pem)或使用PyOpenSSL,如果本机代码是一个选项。
重要的是,不要忘记进入Google Analytics并为在创建服务帐户期间创建的客户电子邮件地址授予适当的权限。
答案 4 :(得分:0)
OSX 10.11 El Capitan不再分发OpenSSL。我能够使用Homebrew和static build:
安装>>> z = 0.9
>>> spec.erf(z)
0.79690821242283216
>>> spec.erfinv(z)
1.1630871536766736
>>> spec.erf(spec.erfinv(z))
0.89999999999999991
cryptography
更多信息