Python库中的ImportError

时间:2017-12-07 17:40:09

标签: python upwork-api

我正在尝试python-upwork library并按照设置进行操作。 pip freeze显示了所需的库:

httplib2==0.10.3
httplib2.system-ca-certs-locater==0.1.2
macholib==1.5.1
matplotlib==1.3.1
modulegraph==0.10.4
numpy==1.8.0rc1
oauth2==1.5.211
urllib3==1.10

但是尝试创建客户端会给出

client = upwork.Client(public_key, secret_key)
  File "/Library/Python/2.7/site-packages/upwork/client.py", line 119, in __init__
    ca_certs=ca_certs_locater.get(),
  File "/Library/Python/2.7/site-packages/ca_certs_locater/__init__.py", line 36, in get
    raise ImportError()

我发现this link,听起来python无法找到证明upwork.com的证书。我试过以下建议,但仍然是同样的问题。我不知道在哪里放cacerts.pem文件。

3 个答案:

答案 0 :(得分:0)

回答我自己的问题。这对我有用。我在Mac上。

this page底部的链接下载最新的pem文件。然后强制复制到特定位置并重命名:

sudo cp cacert.pem /etc/ssl/certs/ca-certificates.crt

然后它的作品!

答案 1 :(得分:0)

请尝试使用env变量:HTTPLIB_CA_CERTS_PATH - 它应该解决问题。

重要确保使用支持HTTPLIB_CA_CERTS_PATH的httplib2.system-ca-certs-locater 0.1.2httplib2-ca_certs_locater进行比较。请参阅此处的建议 - https://github.com/upwork/python-upwork#ssl-certificates-note

答案 2 :(得分:0)

有3个选项(基于此仓库python-upwork

  1. 如果您使用的是Linux,请将ca-cert移至/etc/ssl/certs/ca-certificates.crt
  2. 如果您使用的是osx,请将ca-cert移至/usr/local/etc/openssl/cert.pem
  3. 如果要使用自定义路径,请使用变量env UPWORK_SSL_CERT并设置自定义路径值。