випуск проблеми з встановленням практично будь-якої бібліотеки


101

Мені важко використовувати pip, щоб встановити майже все. Я новачок у кодуванні, тому я подумав, що, можливо, це щось, що я робив неправильно, і вирішив легко_встановити, щоб отримати більшу частину того, що мені потрібно було зробити, що, як правило, спрацювало. Однак зараз я намагаюся завантажити бібліотеку 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. Дивіться цю відповідь
Анупам

Відповіді:


136

Мені здалося достатньо вказати хоста 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: це не має нічого спільного з питанням довіреного хоста / перевірки ОП або з цією відповіддю. Швидше помилка 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
Анупам


40

Я використовував pip-версію 9.0.1 і мав ту саму проблему, всі відповіді вище не вирішили проблему, і я не зміг встановити python / pip з brew з інших причин.

Оновлення піп для 9.0.3вирішення проблеми. А тому, що я не міг оновити pip до pip, я завантажив джерело та встановив його вручну.

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

Або ви можете встановити новіший pip за допомогою:

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

як згадувалось у моєму коментарі до відповіді @ apatsekin, це відбувається через недавню депресію TLS для pip. Детальну інформацію див. У цій відповіді .
Анупам

Дякую .. Можу підтвердити те саме, що працював і для Python 2 (я працюю над чимось спадщиною атм)
cardamom

Якщо conda / anaconda є причиною, чому ви не можете використовувати brew або pip для оновлення pip, тоді ви можете використовувати conda install pipдля встановлення / оновлення файлу, який ви використовуєте, у вашому середовищі conda. Ви повинні зробити це у своєму кореневому / базовому середовищі conda, якщо у вас встановлений conda
варильні панелі

1
Просто встановлюємо pipcurl 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. Дякую!
Чженхуа

Працює для мене на Високій Сьєррі. Дякую.
rustyshackleford

28

Я використовував версію pip3 9.0.1і нещодавно не зміг встановити жодних пакетів за допомогою команди pip3 install.

Версія Mac OS: Капітан EI 10.11.5.

версія пітона: 3.5

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

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

Це не працювало для мене.

Тому я видалив старіший файл pip та встановив новітню версію 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"
гній

27

Ви, мабуть, бачите цю помилку ; дивіться також тут .

Найпростіший обхідний шлях, щоб знизити піп до одного , який не використовує SSL: easy_install pip==1.2.1. Це втрачає перевагу безпеки від використання SSL. Справжнє рішення полягає у використанні дистрибутива Python, пов'язаного з більш новою бібліотекою SSL.


1
Дякую Дугал, але і pip 1.2.1 теж не виходить. -Чи могли б ви зауважити, повідомте мені про те, як я можу оновити розповсюдження python до новішої бібліотеки ssl?
contentclown

власне, у мене просто зараз все працювало. дякую за допомогу, Дугал!
contentclown

7
@ user2348946 Що ти робив, щоб це було корисно в майбутньому людям?
Дугал

1
@DannyStaple Так, саме це я запропонував. Звичайно, використання несистемної установки Python не дуже складно; Я особисто використовую Anaconda , що чудово підходить для чисельних програм, але працює для будь-якого.
Дугал

1
@ user13107 Так; як зазначено в коментарях до прийнятої відповіді, PyPI тепер вимагає TLS 1.2. Вам потрібно буде оновити встановлення Python.
Дугал

18

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


Дякую!! Це було єдине рішення, яке працювало для мене. Годинник мого сервера був ВИМКНЕНО.
Адам


6

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


6

Щоб встановити будь-який інший пакет, я повинен використовувати останню версію pip, оскільки 9.0.1це проблема з SSL. Щоб оновити файл pip самим pip, я повинен спочатку вирішити цю проблему SSL. Щоб вискочити з цього нескінченного циклу, я вважаю, що це єдиний спосіб, який працює для мене.

  1. Знайдіть останню версію файлу на цій сторінці: https://pypi.org/simple/pip/
  2. Завантажте .whl файл останньої версії.
  3. Використовуйте pip, щоб встановити останній pip. (Використовуйте тут свою останню версію)

sudo pip встановити 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)

потім дотримуйтесь будь-яких додаткових пропозицій по вариво, тобто перезаписуйте посилання на python.


1
якщо ви перебуваєте на Mac OS 10.12, ваша оригінальна проблема може бути насправді пов’язана з недавньою депресією TLS pip. Детальніше дивіться у цій публікації . pipперестала підтримувати старіший протокол безпеки 10.12 та старіших версій.
Анупам

3

У мене була така ж проблема. Я щойно оновив пітон з 2.7.0 до 2.7.15 . Це вирішує проблему.

Ви можете завантажити тут .


Я щойно це зафіксував у 10-й раз. Незважаючи на те, що дуже добре розумієш проблему в OSX і знаєш, що і де виходить з ладу, кожне «рішення» відрізняється від минулого. Цього разу голосування проходить до встановлення 2.7.15 на OSX. Простий і ефективний. Також є нотатки, які він випускає стосовно SSL / OpenSSH. Привіт і спасибі велике!
Марк

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. Я поняття не мав, що в анаконди є власний інсталятор, поки я не прочитав це. Отже, це відповідь, яка працювала на мене. Коментар Травіса стосується речі курки / яєць, оскільки він рекомендував встановлювати мініконду.
якщо голосування за нові запитанняCLOSE

2

Для мене останній піп (1.5.6) прекрасно працює з небезпечним пакетом nltk, якщо ви просто скажете, щоб він не був таким вибагливим щодо безпеки:

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

Це стара відповідь. На якій версії pipви працюєте?
варильні панелі

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: \ Файли програми \ Python36 \ Scripts> pip install beautifulsoup4 --trusted-host *

Здається, що --trusted-хост вирішує проблему SSL, а * означає кожен хост.

Звичайно, це не працює, оскільки ви отримуєте інші помилки, оскільки не існує версії, яка б задовольняла вимогу beautifulsoup4, але я не думаю, що це питання пов'язане із загальним питанням.


1

Просто видаліть і перевстановіть пакети з піп, це буде тренуватися для вас, хлопці.

Версія Mac OS: висока Sierra 10.13.6

версія пітона: 3.7

Тож я видалив старіший файл pip та встановив новітню версію 10.0.0, ввівши цю:

python3 -m pip uninstall pip setuptools

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

Тепер моя проблема була вирішена. Якщо ви використовуєте python2, ви можете замінити python3 на python. Я сподіваюся, що це працює і для вас.


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', яку не знайдено в модулі".

Я міг би вирішити цю проблему, встановивши pip 9.0.3, як це видно в іншій потоці. Це кроки, які я зробив:

  1. Завантажено версію pip 9.0.3 з https://pypi.org/simple/pip/ (оскільки pip не вдалося використати для її встановлення).
  2. Встановіть pip 9.0.3 з tar.gz python -m pip встановіть pip-9.0.3.tar.gz

Все почало працювати після цього.




0

Я спробував деякі популярні відповіді, але все ще не міг встановити жодних бібліотек / пакетів за допомогою 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

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