проблема с pip при установке практически любой библиотеки


102

Мне сложно использовать pip для установки почти всего. Я новичок в программировании, поэтому я подумал, что, возможно, я делал что-то неправильно, и отказался от easy_install, чтобы выполнить большую часть того, что мне было нужно, что в целом работает. Однако теперь я пытаюсь загрузить библиотеку nltk, и ни одна из них не выполняет свою работу.

Я пробовал войти

sudo pip install nltk

но получил следующий ответ:

/Library/Frameworks/Python.framework/Versions/2.7/bin/pip run on Sat May  4 00:15:38 2013
Downloading/unpacking nltk

  Getting page https://pypi.python.org/simple/nltk/
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link]/simple/nltk/ when looking for download links for nltk

  Getting page [need more reputation to post link]/simple/
  Could not fetch URL https://pypi.python. org/simple/: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Cannot fetch index base URL [need more reputation to post link]

  URLs to search for versions for nltk:
  * [need more reputation to post link]
  Getting page [need more reputation to post link]
  Could not fetch URL [need more reputation to post link]: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm>

  Will skip URL [need more reputation to post link] when looking for download links for nltk

  Could not find any downloads that satisfy the requirement nltk

No distributions at all found for nltk

Exception information:
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/basecommand.py", line 139, in main
    status = self.run(options, args)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/commands/install.py", line 266, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py", line 1026, in prepare_files
    url = finder.find_requirement(req_to_install, upgrade=self.upgrade)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/index.py", line 171, in find_requirement
    raise DistributionNotFound('No distributions at all found for %s' % req)
DistributionNotFound: No distributions at all found for nltk

--easy_install installed fragments of the library and the code ran into trouble very quickly upon trying to run it.

Есть мысли по этому поводу? Я бы очень признателен за отзывы о том, как я могу либо заставить работать pip, либо что-то еще, чтобы пока что обойти проблему.


2
Для людей, которые получают эту ошибку [SSL: TLSV1_ALERT_PROTOCOL_VERSION]для всех pip install, это связано с недавним устареванием TLS на сайтах Python.org. Смотрите этот ответ
Anupam

Ответы:


137

Я счел достаточным указать хост pypi как надежный. Пример:

pip install --trusted-host pypi.python.org pytest-xdist
pip install --trusted-host pypi.python.org --upgrade pip

Это решило следующую ошибку:

  Could not fetch URL https://pypi.python.org/simple/pytest-cov/: There was a problem confirming the ssl certificate: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600) - skipping
  Could not find a version that satisfies the requirement pytest-cov (from versions: )
No matching distribution found for pytest-cov

Обновление от апреля 2018 года : всем, кто получает ошибку TLSV1_ALERT_PROTOCOL_VERSION: это не имеет ничего общего с проблемой доверенного хоста / проверки OP или этого ответа. Скорее ошибка TLSV1 связана с тем, что ваш интерпретатор не поддерживает TLS v1.2, вы должны обновить свой интерпретатор. См., Например, https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html и https : //bugs.python.org/issue17128 .

Обновление от февраля 2019 г . : для некоторых может быть достаточно обновления pip. Если вышеуказанная ошибка не позволяет вам сделать это, используйте get-pip.py. Например, в Linux,

curl https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Подробнее на https://pip.pypa.io/en/stable/installing/ .


4
Спустя годы это сработало для меня в системе Windows
Аллен Батлер

23
Я все еще получаю сообщение об Could not fetch URL https://pypi.python.org/simple/pytest-xdist/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
ошибке-

3
Я обновил свой ответ, чтобы поговорить о TLSV1, поскольку это совершенно отдельная проблема.
Оливер

8
@peterpod см. этот ответ: stackoverflow.com/a/49769015/1526703
Anupam


40

Я использовал версию pip 9.0.1и имел ту же проблему, все приведенные выше ответы не решили проблему, и я не мог установить python / pip с brew по другим причинам.

Обновление pip 9.0.3решило проблему. И поскольку я не мог обновить pip с помощью pip, я загрузил исходный код и установил его вручную.

  1. Загрузите правильную версию pip из - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Установить пип

Или вы можете установить более новую версию с помощью:

curl https://bootstrap.pypa.io/get-pip.py | python

как упоминалось в моем комментарии к ответу @apatsekin, это происходит из-за недавнего устаревания TLS для pip. См. Этот ответ для подробностей.
Anupam

Спасибо .. Могу подтвердить, что то же самое сработало и для Python 2 (я работаю над чем-то унаследованным банкоматом)
cardamom

Если conda / anaconda - это причина, по которой вы не можете использовать brew или pip для обновления pip, вы можете использовать conda install pip для установки / обновления pip, который вы используете со своей средой conda. Вы должны сделать это в своей корневой / базовой среде conda, если у вас установлена ​​conda
hobs

1
Просто устанавливаем пип curl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil

32

Pypi удалила поддержку версий TLS ниже 1.2

Вам нужно переустановить Pip, сделайте

curl https://bootstrap.pypa.io/get-pip.py | python

или для глобального Python:

curl https://bootstrap.pypa.io/get-pip.py | sudo python

Это решило проблему в Mac OS версии Sierra 10.12.6. Спасибо!
Чжэньхуа

У меня работает на High Sierra. Спасибо.
rustyshackleford

29

Я использовал версию pip3 9.0.1и недавно не смог установить какие-либо пакеты с помощью командыpip3 install .

Версия для Mac OS: EI Captain 10.11.5 .

версия python: 3.5

Я попробовал команду:

curl https://bootstrap.pypa.io/get-pip.py | python

У меня это не сработало.

Поэтому я удалил старую программу и установил новейшую версию 10.0.0, введя это:

python3 -m pip uninstall pip setuptools
curl https://bootstrap.pypa.io/get-pip.py | python3

Теперь моя проблема решена. Если вы используете python2, вы можете заменить python3 на python. Надеюсь, это сработает и для вас.

Кстати, для некоторых новичков вроде меня нужно вводить код: sudo -i

чтобы получить рут права :) Удачи!


Повторяя вышесказанное, я собирался попробовать просто переустановить python и pip, но это сработало для меня. Спасибо!
MikeJannino

не игнорируйте "sudo -i"
Dung

27

Вероятно, вы видите эту ошибку ; см. также здесь .

Самый простой обходной путь, чтобы понизить пип к одному , который не использует SSL: easy_install pip==1.2.1. Это лишает вас преимущества безопасности использования SSL. Реальное решение - использовать дистрибутив Python, связанный с более поздней библиотекой SSL.


1
Спасибо, Дугал, но пип 1.2.1 тоже не работает. -Не могли бы вы сообщить мне, как я могу обновить свой дистрибутив Python до более новой библиотеки ssl?
contentclown

на самом деле, у меня сейчас все работает. спасибо за помощь, Дугал!
contentclown

7
@ user2348946 Что ты сделал, чтобы это пригодилось людям в будущем?
djs

1
@DannyStaple Да, это именно то, что я предложил. Конечно, использовать не системную установку Python не так уж сложно; Я лично использую Anaconda , который отлично подходит для числовых приложений, но подойдет для чего угодно.
djs

1
@ user13107 Да; как отмечено в комментариях к принятому ответу, PyPI теперь требует TLS 1.2. Вам нужно будет обновить установленный Python.
диджеи

18

Другой причиной ошибок SSL может быть плохое системное время - сертификаты не будут проверяться, если это слишком далеко от настоящего.


Спасибо!! Это было единственное решение, которое сработало для меня. Часы моего сервера были ОТЛИЧНЫМИ.
Адам Спирс


6

Решил аналогичную проблему, добавив --trusted-host pypi.python.orgопцию


6

Чтобы установить любой другой пакет, я должен использовать последнюю версию pip, поскольку у 9.0.1него есть проблема с SSL. Чтобы обновить пип за пипсом, я сначала должен решить эту проблему с SSL. Я нахожу единственный способ выпрыгнуть из этого бесконечного цикла.

  1. Найдите последнюю версию pip на этой странице: https://pypi.org/simple/pip/
  2. Загрузите .whl файл последней версии.
  3. Используйте pip для установки последней версии pip. (Используйте здесь свою последнюю версию)

sudo pip install pip-10.0.1-py2.py3-none-any.whl

Теперь pip является последней версией и может устанавливать что угодно.


5

Решение - Установите любой пакет, отметив хосты как доверенные.

  • pypi.python.org
  • pypi.org
  • files.pythonhosted.org

Временное решение

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org {package name}

Постоянное решение - обновите PIP (проблема с версией 9.0.1) до последней.

pip install --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org pytest-xdist

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

3

macOS Sierra 10.12.6. Не удалось ничего установить через pip (python установлен через homebrew). Все ответы выше не сработали.

В конце концов, обновление с python 3.5 до 3.6 сработало.

brew update
brew doctor #(in case you see such suggestion by brew)

затем следуйте любым дополнительным предложениям по brew, т.е. перезаписать ссылку на python.


1
если вы используете Mac OS 10.12, ваша первоначальная проблема может быть связана с недавним прекращением поддержки TLS для pip. Подробности смотрите в этом посте . pipпрекратил поддержку старого протокола безопасности в 10.12 и более ранних версиях.
Anupam

3

У меня такая же проблема. Я только что обновил питон с 2.7.0 до 2.7.15 . Это решает проблему.

Вы можете скачать здесь .


Я только что исправил это в 10-й раз. Несмотря на очень хорошее понимание проблемы в OSX и знание того, в чем и где находится сбой, каждое «решение» отличается от прошлого. На этот раз голосование идет за установку 2.7.15 на OSX. Просто и эффективно. Кроме того, в выпуске есть примечания относительно проблемы SSL / OpenSSH. Приветствую и большое спасибо!
Marc

3

Как написано выше blackjar, следующие строки работали для меня

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx

Вам нужно отдать все три --trusted-host options. Я пробовал использовать только первый, посмотрев ответы, но у меня это не сработало.


2

Вы также можете использовать conda для установки пакетов: см. Http://conda.pydata.org

conda install nltk

Лучший способ использовать conda - загрузить Miniconda, но вы также можете попробовать

pip install conda
conda init
conda install nltk

7
Честно говоря, если pip installне работает, рекомендовать установить другой менеджер пакетов через pip - это ... ну, вы знаете.
Дэйв Ньютон

Это действительно сработало для меня. Я установил анаконду после того, как установил python. Я понятия не имел, что у Anaconda есть собственный установщик, пока я не прочитал это. Итак, это ответ, который сработал для меня. Комментарий Трэвиса касается курицы и яйца, потому что он рекомендовал установить miniconda.
если NewQuestion голосование ЗАКРЫТЬ 01

2

На мой взгляд, последняя версия pip (1.5.6) отлично работает с небезопасным пакетом nltk, если вы просто скажете, что он не так разборчив в вопросах безопасности:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk

Это старый ответ. На какой у pipвас версии ?
hobs

1
Думаю, последний. Думаю, я решил проблему, удалив все (Python 2.7, pip и т. Д.) И переустановив все снова и снова
DaniPaniz

2

пытался

pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install xxx 

и наконец разобрались, не совсем понимаю, почему меняется домен pypi.python.org.


1

Если вы подключаетесь через прокси, выполните export https_proxy=<your_proxy> (в Unix или Git Bash), а затем повторите установку.

Если вы используете Windows cmd, это изменится на set https_proxy=<your_proxy>.


1

Я сделал следующее в Windows 7, чтобы решить эту проблему.

c: \ Program Files \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

--Trusted-host, похоже, решает проблему с SSL, а * означает каждый хост.

Конечно, это не работает, потому что вы получаете другие ошибки, так как не существует версии, удовлетворяющей требованию beautifulsoup4, но я не думаю, что эта проблема связана с общим вопросом.


1

Просто удалите и переустановите пакеты pip, это поможет вам, ребята.

Версия Mac os: высокая Sierra 10.13.6

версия python: 3.7

Поэтому я удалил старый пип и установил новейшую версию 10.0.0, введя это:

python3 -m pip uninstall pip setuptools

curl https://bootstrap.pypa.io/get-pip.py | python3

Теперь моя проблема решена. Если вы используете python2, вы можете заменить python3 на python. Надеюсь, это сработает и для вас.


1

Я попробовал некоторые из популярных ответов, но все равно не смог установить какие-либо библиотеки / пакеты, используя pip install.

Моя конкретная ошибка заключалась в 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chainиспользовании Miniconda для Windows (установщик Miniconda3-py37_4.8.3-Windows-x86.exe).

Наконец, это сработало, когда я сделал это: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

В частности, я добавил это, чтобы заставить его работать: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org


0

Если речь идет только о nltk, я когда-то сталкивался с подобной проблемой. Попробуйте следовать руководству по установке. Установить NLTK

Если вы уверены, что он не работает ни с одним другим модулем, у вас могут быть проблемы с установленными другими версиями Python.

Или попробуйте, чтобы убедиться, что pip уже установлен:

sudo apt-get install python-pip python-dev build-essential 

и посмотрите, работает ли это.


0

Я решил эту проблему, выполнив следующие действия (на sles 11sp2)

zypper remove pip
easy_install pip=1.2.1
pip install --upgrade scons

Вот те же шаги в марионетке (которые должны работать на всех дистрибутивах)

  package { 'python-pip':
    ensure => absent,
  }
  exec { 'python-pip':
    command  => '/usr/bin/easy_install pip==1.2.1',
    require  => Package['python-pip'],
  }
  package { 'scons': 
    ensure   => latest,
    provider => pip,
    require  => Exec['python-pip'],
  }


0

У меня было это с PyCharm, и при обновлении pip до 10.0.1 pip сломался с ошибкой «main» not found in module.

Я мог бы решить эту проблему, установив pip 9.0.3, как показано в другом потоке. Вот шаги, которые я сделал:

  1. Скачал 9.0.3 версию pip с https://pypi.org/simple/pip/ (так как pip нельзя было использовать для его установки).
  2. Установите pip 9.0.3 из tar.gz python -m pip install pip-9.0.3.tar.gz

После этого все заработало.



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.