0

我正在尝试python-upwork 库并按照设置进行操作。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()

我找到了这个链接,听起来 python 找不到验证 upwork.com 的证书。我尝试了以下建议,但仍然是同样的问题。我不确定将 cacerts.pem 文件放在哪里。

4

3 回答 3

1

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

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

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

然后它起作用了!

于 2017-12-08T19:53:15.063 回答
1

有 3 个选项(基于这个 repo python-upwork

  1. 如果您在 linux 上,请将 ca-cert 移动到/etc/ssl/certs/ca-certificates.crt
  2. 如果您在 osx 上,请将 ca-cert 移动到/usr/local/etc/openssl/cert.pem
  3. 如果要使用自定义路径,请使用变量 envUPWORK_SSL_CERT并设置自定义路径值。
于 2020-05-17T14:40:30.107 回答
0

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

重要请确保您使用httplib2.system-ca-certs-locater 0.1.2支持 HTTPLIB_CA_CERTS_PATH 与httplib2-ca_certs_locater. 在此处查看建议 - https://github.com/upwork/python-upwork#ssl-certificates-note

于 2017-12-11T10:21:56.660 回答