ImportError в библиотеке Python

Я пробую библиотеку 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.

2 ответа

Отвечая на мой собственный вопрос. Вот что сработало для меня. Я на Mac.

Загрузите последний файл pem по ссылке внизу этой страницы. Затем принудительно скопируйте в определенное место и переименуйте его:

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

Тогда это работает!

Для этого есть 3 варианта (на основе этого репозитория python-upwork:

  1. если вы работаете в Linux, переместите сертификат на /etc/ssl/certs/ca-certificates.crt
  2. если вы используете osx, переместите сертификат на /usr/local/etc/openssl/cert.pem
  3. если вы хотите использовать собственный путь, используйте переменную env UPWORK_SSL_CERT и установите значение пользовательского пути.

Пожалуйста, попробуйте использовать переменную 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.

Другие вопросы по тегам