помилка установки pip із "помилкою підключення: [SSL: CERTIFICATE_VERIFY_FAILED] не вдалося підтвердити сертифікат (_ssl.c: 598)"


397

Я дуже новачок у Python і намагаюся в > pip install linkcheckerWindows 7. Деякі зауваження:

  • встановлення піп-файлу не вдається, незалежно від пакета. Наприклад, > pip install scrapyтакож призводить до помилки SSL.
  • Встановлення ванілі Python 3.4.1 включає піп 1.5.6. Перше, що я спробував зробити, це встановити linkchecker. Python 2.7 вже встановлений, він поставляється з ArcGIS. pythonі pipне були доступні в командному рядку, поки я не встановив 3.4.1.
  • > pip search linkcheckerпрацює. Можливо, це тому, що пошук на pip не підтверджує SSL-сертифікат сайту.
  • Я перебуваю в мережевій компанії, але ми не проходимо через проксі для доступу до Інтернету.
  • Кожен комп'ютер компанії (включаючи мій) має довірений кореневий сертифікаційний орган, який використовується з різних причин, включаючи можливість моніторингу трафіку TLS на https://google.com . Не впевнений, чи має це щось спільне.

Ось вміст мого pip.log після запуску pip install linkchecker:

Downloading/unpacking linkchecker
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Getting page https://pypi.python.org/simple/
  Could not fetch URL https://pypi.python.org/simple/: connection error: HTTPSConnectionPool(host='pypi.python.org', port=443): Max retries exceeded with url: /simple/ (Caused by <class 'http.client.CannotSendRequest'>: Request-sent)
  Will skip URL https://pypi.python.org/simple/ when looking for download links for linkchecker
  Cannot fetch index base URL https://pypi.python.org/simple/
  URLs to search for versions for linkchecker:
  * https://pypi.python.org/simple/linkchecker/
  Getting page https://pypi.python.org/simple/linkchecker/
  Could not fetch URL https://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
  Will skip URL https://pypi.python.org/simple/linkchecker/ when looking for download links for linkchecker
  Could not find any downloads that satisfy the requirement linkchecker
Cleaning up...
  Removing temporary dir C:\Users\jcook\AppData\Local\Temp\pip_build_jcook...
No distributions at all found for linkchecker
Exception information:
Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "C:\Python34\lib\site-packages\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "C:\Python34\lib\site-packages\pip\req.py", line 1177, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "C:\Python34\lib\site-packages\pip\index.py", line 277, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
pip.exceptions.DistributionNotFound: No distributions at all found for linkchecker

1
Зовсім навпаки! Python 3.4.1 і новіші версії не роблять перевірку сертифікатів за замовчуванням. Якби ви використовували Python 3.4.2, я б подумав, що це проблема. (Див питання 21013 та цей потік в списку розсилки . Зверніть увагу , що це початок досить довгу нитку.) До жаль , я не міг на самому ділі допомогу!
Коді Пірсолл

3
Перевірте, чи у вас відкрився скрипець і закрийте його. Fiddler спробує розірвати SSL, і це порушує піп, коли я закриваю Fiddler, це працює для мене. Коли я закриваю свого прихильника, все йде нормально
Хосе Барбоса

Відповіді:


639

-----> pip install gensim config --global http.sslПідтвердити хибність

Просто встановіть будь-який пакет із заявою "config --global http.sslПідтвердити помилкове"

Ви можете ігнорувати помилки SSL, налаштовуючи pypi.orgі files.pythonhosted.orgяк надійні хости.

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>

Примітка . Іноді протягом квітня 2018 року індекс пакунків Python був перенесений з pypi.python.orgна pypi.org. Це означає, що команди "довірений хост" з використанням старого домену більше не працюють.

Постійне виправлення

З моменту випуску pip 10.0 ви маєте змогу виправити це постійно, лише оновивши pip:

$ pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org pip setuptools

Або просто встановивши її, щоб отримати останню версію:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

(… А потім працює get-pip.pyз відповідним інтерпретатором Python).

pip install <otherpackage>повинен просто працювати після цього. Якщо ні, то вам потрібно буде зробити більше, як пояснено нижче.


Ви можете додати до конфігураційного файлу надійних хостів та проксі .

pip.ini(Windows) або pip.conf(unix)

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

Альтернативні рішення (менш захищені)

Більшість відповідей може викликати питання безпеки.

Два способи вирішення, які допомагають легко встановити більшість пакетів python:

  • Використання easy_install : якщо ви дійсно ліниві і не хочете витрачати багато часу, використовуйте easy_install <package_name>. Зауважте, що деякі пакети не знайдуться або нададуть невеликі помилки.
  • Використання колеса : завантажте колесо пакету python та використовуйте команду pip pip install wheel_package_name.whlдля встановлення пакета.

7
Ваше оновлення покращило справи. У моєму випадку корпоративний брандмауер вставляє себе як надійний хост для SSL-з'єднань. Я припускав, що налаштування проксі невірна, але додавання багатослівної показало, що проблема - SSL. Змінення URL-адреси індексу працювало навколо випуску.
пітер

11
Дивовижно, THX! Надійний хост здається достатнім, тобто. pip install --trusted-host pypi.python.org pypi_package. Використання --verboseпоказує, що без --trusted-hostцього з'єднання HTTPS не вдається, тоді як те саме HTTPS-з'єднання намагається (не HTTP), --trusted-hostале це вдається.
Олівер

12
Чи не використовується версія HTTP (а потім навіть довіряти їй) також ризик для безпеки?
Paŭlo Ebermann

3
ви можете зробити так, щоб ігнорувати параметр --index-url, спробуйте також виконати цю команду:pip install --trusted-host pypi.python.org pythonPackage
Alter Hu

8
це не працює для мене. Запуск mac os high sierra на macbookpro 15 "Python 2.7 pip 9.0.1 I Спробував і те: sudo -H pip install --trusted-host pypi.python.org numpy та sudo pip install --trusted-host pypi.python.org numpy - це завжди дає мені ту саму помилку: "Виникла проблема з підтвердженням сертифіката ssl: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] версія протоколу попередження tlsv1 (_ssl.c: 661) - пропуск Не вдалося знайти версію, яка б задовольняла вимогу"
DaniPaniz

123

Ви можете вказати cert за допомогою цього параметра:

pip --cert /etc/ssl/certs/FOO_Root_CA.pem install linkchecker

Див.: Документи »Довідник» pip

Якщо вказати кореневий сертифікат вашої компанії не працює, можливо, буде працювати CURL: http://curl.haxx.se/ca/cacert.pem

Потрібно використовувати файл PEM, а не файл CRT. Якщо у вас є файл CRT, вам потрібно буде перетворити файл у PEM. У коментарях є повідомлення про те, що це зараз працює з файлом CRT, але я не підтвердив.

Також перевірте: SSL Cert Verification .


1
Curl one IS безпечний. Я б запропонував скористатися цим.
Стів Таубер

1
@JeremyCook це міг бути час на вашому сервері, якщо це було в минулому, це може бути процес перевірки
Джованні Бітлінер,

1
Формат CRT не підтримується, є лише формат PEM. Вам потрібно буде конвертувати CRT у формат PEM за допомогою openssl. Ви також повинні переконатися, що завантажений пакет містить правильний корінь CA. Будь ласка, дивіться мою відповідь вище для деталей: stackoverflow.com/a/28724886/41957 .
chnrxn

1
@ JeremyCook, PEM / certs не надходили безпосередньо від третьої сторони, з якої ви їх завантажили. Вони зібрали серти з першоджерел. Для третьої сторони неможливо генерувати сертифікат когось іншого, якщо вони не мають правильного ключа (який матиме лише хтось інший).
chnrxn

4
@endolith - дивлячись на pip.pypa.io/en/stable/user_guide/#configuration, схоже, ви можете використовувати змінні середовища, або pip.confфайл, щоб постійно посилатися на них, не вказуючи команду
Cinderhaze

63

Відповідь kenorb дуже корисна (і чудова!).
Серед його рішень, можливо, це найпростіший варіант: --trusted-host

Наприклад, у цьому випадку ви можете це зробити

pip install --trusted-host pypi.python.org linkchecker

Файл pem (або що-небудь ще) непотрібний.


Це також працює для інших команд, таких якpip list --trusted-host pypi.python.org --outdated
Ігор

60

Для мене проблему виправили, створивши папку pipз файлом: pip.ini у C:\Users\<username>\AppData\Roaming\ напр .:

C:\Users\<username>\AppData\Roaming\pip\pip.ini

Всередині я написав:

[global]
trusted-host = pypi.python.org
               pypi.org
               files.pythonhosted.org

Я перезапустив python, а потім pip постійно довіряв цим сайтам і використовував їх для завантаження пакетів.

Якщо ви не можете знайти папку AppData у Windows, напишіть %appdata%у провідник файлів, і він повинен з’явитися.


Як не дивно, це не допомагає на моїй машині Win10: /
mcandre

1
На роботі, середовище Windows 10, використовуючи емулятор консолі Cmder. --trusted-хост, який використовується для вирішення "" SSLError (SSLCertVerificationError (1, "[SSL: CERTIFICATE_VERIFY_FAILED]"). Проблема перевірки сертифіката не виконана: самопідписаний сертифікат у ланцюжку сертифікатів ". Сьогодні він припинив роботу. Я помістив копію своєї папки pip ( взяті з ../AppData/Local/) в ../AppData/Roaming/ і все в порядку з моїм місцевим світом пітонів знову велике спасибі!
IdusOrtus

1
Чудово! Дуже дякую. --trusted-host для мене зараз не працює, але ваше рішення допомагає.
Олександр Прокоф’єв

1
Чому цього не було завантажено при встановленні Python>
98Ed

Дивовижно! Я шукав помилки, пов’язані з GIT, проксі-сервером компанії, SSL, і це було просто пов'язано з протоколом. Дякую і сподіваюсь, що цей коментар принесе сюди людей, які плутаються, як я.
негас

41

Відповіді досить схожі та трохи заплутані. У моєму випадку сертифікати в мережі моєї компанії були проблемою. Мені вдалося вирішити проблему, використовуючи:

pip install --trusted-host files.pythonhosted.org --trusted-host pypi.org --trusted-host pypi.python.org oauthlib -vvv

Як видно тут . Аргумент -vvv можна опустити, якщо не потрібен багатослівний вихід


10
Лише один, щоб виправити мою проблему, дякую.
Gringo Suave

Дивовижний, єдиний, хто працював і на мене!
ethikz

Працює тому, що сьогодні я за деяким проксі, який викреслює звичайний SSL. Зазвичай мені не потрібно вказувати надійних хостів, коли дорослі люди керують мережею.
MrChrister

це працює і для мене. вище не працювало
Шрінатх Ганеш

32

Постійне виправлення

pip install --upgrade pip --trusted-host pypi.org --trusted-host files.pythonhosted.org

Наприклад:

pip install <package name> --trusted-host pypi.org --trusted-host files.pythonhosted.org

24

Щоб вирішити цю проблему раз і назавжди, ви можете перевірити наявність у вас pip.confфайлу.

Це, де ви pip.confповинні бути, згідно з документацією :

У Unix типовим файлом конфігурації є: $HOME/.config/pip/pip.confякий поважає змінну середовища XDG_CONFIG_HOME.

На macOS файл конфігурації є, $HOME/Library/Application Support/pip/pip.confякщо каталог $HOME/Library/Application Support/pipіснує ще$HOME/.config/pip/pip.conf

У Windows є файл конфігурації %APPDATA%\pip\pip.ini.

Всередині virtualenv:

У Unix та macOS файл є $VIRTUAL_ENV/pip.conf

У Windows файл: %VIRTUAL_ENV%\pip.ini

Ви pip.confповинні виглядати так:

[global]
trusted-host = pypi.python.org

pip install linkcheckerвстановлюється linkcheckerбез скарг після того, як я створив pip.confфайл.


1
$ HOME / Бібліотека / Підтримка програм / pip не існує на моїй машині, чи є альтернативне місце?
42shadow42

Схоже, pipпосібник користувача оновлено з моменту опублікування цієї відповіді. Я оновив свою відповідь на macOS. Чи допомагає це?
Алекс-Антуан Фортін

Не впливає на помилку SSL на моїй машині Win10: /
mcandre

Не виправляє проблему на MacOSX.
MoDJ

Я на macOS. Якщо ви встановили python3 за допомогою, brewтоді переконайтеся, що ви використовуєте pip3та створіть pip.confяк $HOME/.config/pip/pip.conf. Я працював на мене.
ана

23

Найпростіший спосіб, який я знайшов, - це завантажити та використовувати "DigiCert з високою надійністю EV Root CA" від DigiCert за адресою https://www.digicert.com/digicert-root-certificates.htm#roots

Ви можете відвідати https://pypi.python.org/, щоб перевірити видавця cert, натиснувши на піктограму блокування в адресному рядку, або збільшити свій обліковий запис за допомогою geek, використовуючи openssl:

$ openssl s_client -connect pypi.python.org:443
CONNECTED(00000003)
depth=1 /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/businessCategory=Private Organization/1.3.6.1.4.1.311.60.2.1.3=US/1.3.6.1.4.1.311.60.2.1.2=Delaware/serialNumber=3359300/street=16 Allen Rd/postalCode=03894-4801/C=US/ST=NH/L=Wolfeboro,/O=Python Software Foundation/CN=www.python.org
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
 1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 Extended Validation Server CA
   i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA

Останнє значення CN у ланцюжку сертифікатів - це ім'я ЦС, яке потрібно завантажити.

Для разових зусиль виконайте наступне:

  1. Завантажте CRT від DigiCert
  2. Перетворення CRT у формат PEM
  3. Експортуйте змінну середовища PIP_CERT в шлях файлу PEM

(останній рядок передбачає, що ви використовуєте оболонку bash) перед запуском pip.

curl -sO http://cacerts.digicert.com/DigiCertHighAssuranceEVRootCA.crt 
openssl x509 -inform DES -in DigiCertHighAssuranceEVRootCA.crt -out DigiCertHighAssuranceEVRootCA.pem -text
export PIP_CERT=`pwd`/DigiCertHighAssuranceEVRootCA.pem

Щоб зробити це повторно використаним, поставте DigiCertHighAssuranceEVRootCA.crt кудись загальноприйнятим та експортуйте PIP_CERT відповідно до ~ / .bashrc.


4
Використовуйте свою відповідь, щоб експортувати кореневий центр нашої компанії до змінної PIP_CERT і, нарешті, спробувавши все інше, включаючи 'pip --cert cert.pem', як ви працювали ... просто встановіть пакет пакета. ВЕЛИКИЙ +1 - так, у нас є firewal / proxy / utm.
Марлон

Це все ще не вдалося мені на Mac Mojave. Я точно дотримувався цих 3 кроків і все-таки отримую "Помилка: pip налаштований на місця, які вимагають TLS / SSL, однак модуль ssl в Python недоступний". Я спробував усі параметри --trusted-host та --cert та pip не працюватимуть. Я спробував оновити pip і отримав помилку SSL. Я встановив pip з нуля з завитком, і досі отримую помилку, коли запускаю pip. Час копати піп і дотримуватися конди :(
user1255933

21

Ви маєте такі можливості вирішити проблему CERTIFICATE_VERIFY_FAILED:

  • Використовуйте HTTP замість HTTPS (наприклад --index-url=http://pypi.python.org/simple/).
  • Використовуйте --cert <trusted.pem>або CA_BUNDLEзмінну, щоб вказати альтернативний пакет CA.

    Наприклад, ви можете перейти до невдалої URL-адреси з веб-браузера та імпортувати кореневий сертифікат у вашу систему.

  • Запустіть, python -c "import ssl; print(ssl.get_default_verify_paths())"щоб перевірити поточну (перевірити, чи існує).

  • OpenSSL має пару середовищ ( SSL_CERT_DIR, SSL_CERT_FILE), які можуть бути використані для визначення різних баз даних сертифікатів PEP-476 .
  • Використовуйте --trusted-host <hostname>для позначення хоста як довіреного.
  • У Python використовуйте verify=Falseдля requests.get(див. SSL Cert Verification ).
  • Використовуйте --proxy <proxy>для уникнення перевірок сертифікатів.

Детальніше читайте на: Обгортка TLS / SSL для об'єктів сокет - Перевірка сертифікатів .


З першого моменту, як вказати HTTP за допомогою команди pip?
rayzinnz

1
@rayzinnz Я додав приклад.
kenorb

16

Встановіть правильний час та дату!

Для мене з’ясувалося, що моя дата та час були неправильно налаштовані на Raspberry Pi. Результатом було те, що всі з'єднання SSL та HTTPS не вдалися, використовуючи сервер https://files.pythonhosted.org/ .

Оновіть його так:

sudo date -s "Wed Thu  23 11:12:00 GMT+1 2018"
sudo dpkg-reconfigure tzdata

Або безпосередньо з часом Google:

Довідка: https://superuser.com/a/635024/935136

sudo date -s "$(curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g')"
sudo dpkg-reconfigure tzdata

Зводив мене з розуму годинами - дякую за це. Час PI було відключено на 10 днів для мене, що спричинило (здавалося б) всілякі помилки під час установки pip.
SteveJ

13

Нещодавно я зіткнувся з цією проблемою через фільтр веб-вмісту моєї компанії, який використовує власний орган сертифікації, щоб він міг фільтрувати трафік SSL. PIP, здається, не використовує сертифікати сертифікатів системи CA у моєму випадку, що призводить до вказаної вами помилки. Пізніше перехід PIP до версії 1.2.1 представив власний набір проблем, тому я повернувся до оригінальної версії, що постачалася з Python 3.4.

Моє вирішення досить просте: використання easy_install. Або він не перевіряє серти (як і стара версія PIP), або він знає використовувати системні серти, оскільки він працює щоразу для мене, і я все ще можу використовувати PIP для видалення пакетів, встановлених з easy_install.

Якщо це не працює, і ви можете отримати доступ до мережі або комп’ютера, який не має проблеми, ви завжди можете налаштувати свій особистий сервер PyPI: як створити локальний власний індекс сховища pypi без дзеркала?

Я майже це робив, поки не спробував використати easy_installяк останнє зусилля канави.


Тут же питання. Ще одне вирішення питання - експортувати кореневий сертифікат компанії як файл та pipзапропонувати використовувати його --cert MyCompanyRootCA.crt.
glibdud

10

Ви можете спробувати обійти помилку SSL, використовуючи http замість https. Звичайно, це не є оптимальним з точки зору безпеки , але якщо ви поспішаєте, це слід зробити:

pip install --index-url=http://pypi.python.org/simple/ linkchecker

1
Я очікував, що ваша пропозиція спрацює. Божевільно я отримав такі самі помилки, включаючи першуCould not fetch URL http://pypi.python.org/simple/linkchecker/: connection error: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:598)
Джеремі Кук

3
Гаразд, тому інше вирішення - завантаження пакета tar.gz, доступного тут, pypi.python.org/pypi/LinkChecker/9.3 та встановлення його за допомогою: pip install LinkChecker-9.3.tar.gz
Augusto Destrero

3
Але якщо пакет, який ви хочете встановити, має залежності, вам доведеться завантажити та встановити також усі залежності, якщо їх багато, це може стати кошмаром.
Augusto Destrero

1
Для мене мені довелося завантажити whl (для мого випадку pyserial) та встановити його. Це підібрало залежності, які не були зібрані tar.gz ... Тож, можливо, whl - це інший варіант по лінії @baxeico python -m pip install pyserial-3.4-py2.py3-none-any.whl Для мене нічого з цього не працювало: 1. --cert cacert.pem 2. сертифікат компанії-експортера, перехід на PEM 3. easy_install в cygwin 4. --trusted-host
charo

1
Зараз спрацьовує тривалість станом на 2017 рік - доступ до HTTP був повністю відключений. mail.python.org/pipermail/distutils-sig/2017-O жовтня/…
gbtimmon

8

Відповіді використовувати

pip install --trusted-host pypi.python.org <package>

робота. Але вам доведеться перевірити, чи є переадресація чи кеш- pipфайли. У Windows 7 з pip 9.0.1мені довелося запустити

pip install \
  --trusted-host pypi.python.org \
  --trusted-host pypi.org \
  --trusted-host files.pythonhosted.org \
  <package>

Ви можете знайти їх за допомогою багатослівного прапора.


7

Я встановив pip 1.2.1 з easy_install та оновив до останньої версії pip (6.0.7 на той час), яка може встановити пакунки в моєму випадку.

easy_install pip==1.2.1
pip install --upgrade pip

7

У вас є 4 варіанти:

Використання сертифіката як параметра

$ pip install --cert /path/to/mycertificate.crt linkchecker

Використання сертифіката в а pip.conf

Створіть цей файл:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

і додайте ці рядки:

[global]
cert = /path/to/mycertificate.crt

Ігнорування сертифіката та використання HTTP

$ pip install --trusted-host pypi.python.org linkchecker

Ігнорування сертифіката та використання HTTP у pip.conf

Створіть цей файл:

$HOME/.pip/pip.conf (Linux)

%HOME%\pip\pip.ini (Windows)

і додайте ці рядки:

[global]
trusted-host = pypi.python.org

Джерело


6

Поперше,

    pip install --trusted-host pypi.python.org <package name>

не працював для мене. Я продовжував отримувати помилку CERTIFICATE_VERIFY_FAILED. Однак я помітив у повідомленнях про помилки, що вони посилаються на сайт 'pypi.org'. Отже, я використовував це як ім’я довіреного хоста замість pypi.python.org. Це майже мене завело туди; завантаження все ще не вдавалось із CERTIFICATE_VERIFY_FAILED, але пізніше. Знайшовши посилання на веб-сайт, який не працював, я включив його як надійного хоста. Що в підсумку для мене спрацювало:

    pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package name>

5

Я не впевнений, що це пов’язано, але у мене виникла подібна проблема, яку виправили, скопіювавши ці файли з Anaconda3 / Library / bin в Anaconda3 / DLL:

libcrypto-1_1-x64.dll

libssl-1_1-x64.dll


За допомогою Anaconda 2019.03 я скопіював такі файли з <папки Anaconda3> / Бібліотека / бін в <Anaconda3> / DLLs libcrypto-1_1-x64.dll libcrypto-1_1-x64.pdb libssh2.dll libssl-1_1-x64.dll libssl- 1_1-x64.pdb Тоді я додаю помилку ConnectTimeout, тому оновлена ​​конфігурація проксі .condarc
MordicusEtCubitus

Працює. Чоловік ти геній! Я блукав по форумах протягом 1,5 години, просто щоб знайти це занижене і просте рішення.
ivan866

4

З тією ж проблемою було спробувати pip install ftputilActivePython 2.7.8, ActivePython 3.4.1 та "запас" Python 3.4.2 для 64-розрядних Windows 7 Enterprise. Усі спроби провалилися з тими ж помилками, що й ОП.

Вирішили проблему для Python 3.4.2 шляхом переходу на pip 1.2.1: easy_install pip==1.2.1(див. Https://stackoverflow.com/a/16370731/234235 ). Те саме виправлення працювало і для ActivePython 2.7.8.

Про помилку, про яку повідомили у березні 2013 року, досі відкрито: https://github.com/pypa/pip/isissue/829 .


Це працювало і для мене. Хоча це може здатися поганою ідеєю в першу чергу перейти на більш стару версію pip, я мав справу зі старими пакетами django, тому стара версія pip насправді відповідала іншим пакетам.
mknaf

Випуск 829 закритий.
Ортомала Локні

3

Ніщо на цій сторінці не працювало для мене, поки я не застосував параметр --verbose, щоб побачити, що він хотів потрапити на files.pythonhosted.org, а не на pypi.python.org:

pip install --trusted-host files.pythonhosted.org <package_name>

Тож перевірте URL-адресу, яка насправді не працює через --verbose параметр.


2

Я вирішив цю проблему, видаливши pip та встановивши старішу версію pip: https://pypi.python.org/pypi/pip/1.2.1


Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться. - З огляду
apomene

@apomene Як це робити, include the essential parts of the answer hereоскільки це посилання на двійковий файл ...?
Thomas Ayoub

@ThomasAyoub, я вважаю, ви вже знаєте, що вищезгадане повідомлення автоматично заповнюється з SO, коли позначає відповідь лише відповіддю на посилання
apomene

@apomene, яка не відповідає на моє запитання, я все ще не бачу, що ОП могла / повинна додати?
Томас Аюб

1
@ThomasAyoub, Щоб детальніше розібратися, мій коментар (ТАК) вказує, що це питання коротке та лише посилання, тобто це може бути краще коментар. Я не мав наміру чітко заявляти, що ОП має додати деталі, що поновлюють посилання, а детальну інформацію про те, чому це відповідає на питання.
apomene

2

Ви можете спробувати це ігнорувати "https":

pip install --index-url=http://pypi.python.org/simple/ --trusted-host pypi.python.org  [your package..]

1
якщо у вас навіть є інші проблеми з версією pip, ви можете спробувати це pip install --trusted-host pypi.python.org --upgrade pip –
Smaillns,

2

Одне рішення ( для Windows ) - створити файл, викликаний pip.iniу %AppData%\pip\папці (створити папку, якщо її немає) та вставити наступні дані:

[global]
cert = C:/certs/python_root.pem
proxy = http://my_user@my_company.com:my_password@proxy_ip:proxy_port

... і тоді ми можемо виконати інструкцію встановлення:

pip3 install PyQt5

Інший варіант - встановити пакет, використовуючи аргументи для проксі-сервера та сертифіката ...

$ pip3 install --proxy http://my_user@my_company.com:my_password@proxy_ip:proxy_port \
   --cert C:/certs/python_root.pem PyQt5

Для перетворення *.cerфайлів сертифікатів у потрібний *.pemформат виконайте таку інструкцію:

$ openssl x509 -inform der -in python_root.cer -out python_root.pem

Сподіваюся, це допоможе комусь!


1
Для інших ОС подивіться відповідь Алекса-Антуана
Фортіна

Проксі-сервер не знадобився, лише cert. Я біг; pip3.6 config set global.cert '/<path>/server.crt'
avatarofhope2

2

У моєму випадку це було пов’язано з тим, що сертифікат SSL був підписаний внутрішнім адміністратором моєї компанії. Використання способів вирішення подібних питань pip --certне допомогло, але наступний пакет:

pip install pip_system_certs

Дивіться: https://pypi.org/project/pip-system-certs/

Цей пакет виправляє протокол pip і запитує під час виконання програми сертифікати з системного магазину за замовчуванням (а не з пакетом cart ca).

Це дозволить pip перевірити tls / ssl підключення до серверів, кому довіряється встановлення вашої системи.


1
здається, потрібно встановити pip_sysem_certs, щоб скасувати помилку [SSL: CERTIFICATE_VERIFY_FAILED]. Проблема полягає в тому, що спроба її встановити отримала помилку [SSL: CERTIFICATE_VERIFY_FAILED] ...
athos

Можливо, це було рішенням у якийсь момент часу, але pip_system_certsповністю порушило моє середовище Python, і тому це не є гарною відповіддю. Не встановлюйте pip_system_certs. Дивіться stackoverflow.com/questions/27835619/… для отримання додаткової інформації.
h0r53

1

для мене це тому, що раніше я запускаю скрипт, який встановлює проксі (на fiddler), перезапуск консолі або перезавантаження виправляють проблему.


Fiddler можна обійти, встановивши "Розшифрувати трафік HTTPS" на "... тільки з браузерів" в Інструментах | Параметри. Це вирішило для мене проблему.
тефір

1

Нещодавно я зіткнувся з тією ж проблемою в python 3.6 з візуальною студією 2015 року. Провівши 2 дні, я отримав рішення і добре працює для мене.

Я отримав нижче помилку під час спроби встановити numpy за допомогою pip або з візуальної студії Збір numpy Не вдалося отримати URL https://pypi.python.org/simple/numpy/ : Виникла проблема з підтвердженням сертифіката ssl: [SSL: CERTIFICATE_VERIFY_FAILED] Сертифікат не підтверджений (_ssl.c: 748) - пропуск Не вдалося знайти версію, яка б задовольняла вимогу numpy (від версій:) Не знайдено відповідного розподілу для numpy

Роздільна здатність:

Для ОС Windows

  1. відкрити -> "% appdata%" Створити папку "pip", якщо її немає.
  2. У папці pip створіть файл "pip.ini".
  3. Відредагуйте файл та напишіть
    [global]
    trusted-host = pypi.python.org Зберегти та закрити файл. Тепер встановіть за допомогою pip / visual studio, це прекрасно працює.

1

У моєму випадку я запускав Python у зображенні мінімального альпійського докера. У ньому не було кореневих сертифікатів CA. Виправити:

apk update && apk add ca-certificates


1

Відповідь Вольштейна мені допомогла.

Я не знайшов файл pip.ini ніде на своєму ПК. Так зробили і наступне.

  1. Перейшов у папку AppData. Ви можете отримати папку appdata, відкривши командний рядок і введіть echo% AppData%

Розташування AppData за допомогою командного рядка

Або просто наберіть% AppData% у Windows Explorer.

Місце розташування AppData в Windows Explorer

  1. Створіть папку під назвою pip всередині цієї папки appdata.

  2. У тій піп-папці, яку ви тільки що створили, створіть простий текстовий файл під назвою pip.ini

  3. Вставте в цей файл наступні налаштування конфігурації за допомогою простого редактора на ваш вибір.

Файл pip.ini:

[list]
format=columns

[global]
trusted-host = pypi.python.org pypi.org

Тепер вам слід добре піти.


1

Я зіткнувся з подібним питанням. Рішення, яке працювало для мене 1) видалити python 2.7 2) видалити папку python27 3) перевстановити останній python


0

Для мене жоден із запропонованих методів не працював - використовуючи cert, HTTP, довірений хост.

У моєму випадку перехід на іншу версію пакета працював (у цьому випадку paho-mqtt 1.3.1 замість paho-mqtt 1.3.0).

Схоже, проблема була специфічною для цієї версії пакета.


0

У вас може виникнути ця проблема, якщо у вашій системі відсутні деякі сертифікати, наприклад, у windowsuse встановіть ca-сертифікати-mozilla

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.