problème de pip lors de l'installation de presque toutes les bibliothèques

101

J'ai du mal à utiliser pip pour installer presque tout. Je suis nouveau dans le codage, alors j'ai pensé que c'était peut-être quelque chose que j'avais mal fait et j'ai choisi de ne pas utiliser easy_install pour obtenir la plupart de ce dont j'avais besoin, ce qui a généralement fonctionné. Cependant, j'essaye maintenant de télécharger la bibliothèque nltk, et ni le travail n'est fait.

J'ai essayé d'entrer

sudo pip install nltk

mais j'ai obtenu la réponse suivante:

/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.

Des réflexions sur ce problème? J'apprécierais vraiment quelques commentaires sur la façon dont je peux faire fonctionner pip ou quelque chose pour contourner le problème en attendant.

contentclown
la source
2
Pour les gens qui obtiennent cette erreur [SSL: TLSV1_ALERT_PROTOCOL_VERSION]pour tous les pip installs, c'est à cause de la récente dépréciation de TLS par les sites Python.org. Voir cette réponse
Anupam

Réponses:

136

J'ai trouvé suffisant de spécifier l'hôte pypi comme étant de confiance. Exemple:

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

Cela a résolu l'erreur suivante:

  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

Mise à jour d'avril 2018 : à quiconque obtient l'erreur TLSV1_ALERT_PROTOCOL_VERSION: cela n'a rien à voir avec le problème d'hôte de confiance / de vérification de l'OP ou de cette réponse. L'erreur TLSV1 est plutôt due au fait que votre interpréteur ne prend pas en charge TLS v1.2, vous devez mettre à niveau votre interpréteur. Voir par exemple https://news.ycombinator.com/item?id=13539034 , http://pyfound.blogspot.ca/2017/01/time-to-upgrade-your-python-tls-v12.html et https : //bugs.python.org/issue17128 .

Mise à jour de février 2019 : pour certains, il peut être suffisant de mettre à niveau pip. Si l'erreur ci-dessus vous empêche de le faire, utilisez get-pip.py. Par exemple sous Linux,

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

Plus de détails sur https://pip.pypa.io/en/stable/installing/ .

Oliver
la source
4
Cela a fonctionné pour moi, des années plus tard, sur un système Windows
Allen Butler
23
Je reçois toujours une 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
erreur-
3
J'ai mis à jour ma réponse pour parler de TLSV1 car il s'agit d'un problème totalement distinct.
Oliver
8
@peterpod voir cette réponse: stackoverflow.com/a/49769015/1526703
Anupam
40

J'ai utilisé la version pip 9.0.1et j'ai eu le même problème, toutes les réponses ci-dessus n'ont pas résolu le problème, et je n'ai pas pu installer python / pip avec brew pour d'autres raisons.

Mise à niveau de pip pour 9.0.3résoudre le problème. Et comme je ne pouvais pas mettre à niveau pip avec pip, j'ai téléchargé la source et l'ai installée manuellement.

  1. Téléchargez la version correcte de pip depuis - https://pypi.org/simple/pip/
  2. sudo python3 pip-9.0.3.tar.gz - Installer pip

Ou vous pouvez installer un nouveau pip avec:

curl https://bootstrap.pypa.io/get-pip.py | python
ROM
la source
comme mentionné dans mon commentaire sur la réponse de @ apatsekin, cela se produit en raison de la récente dépréciation de TLS pour pip. Voir cette réponse pour plus de détails.
Anupam
Merci .. Je peux confirmer que la même chose a également fonctionné pour Python 2 (je travaille sur quelque chose d'ancien atm)
cardamom
Si conda / anaconda est la raison pour laquelle vous ne pouvez pas utiliser brew ou pip pour mettre à jour pip, vous pouvez l'utiliser conda install pippour installer / mettre à niveau le pip que vous utilisez avec votre environnement conda. Vous devez faire dans votre environnement Conda racine / base, si vous avez installé Conda
plaques
1
Juste installer pipcurl https://bootstrap.pypa.io/get-pip.py | python
Sumeet Gohil
32

Pypi a supprimé la prise en charge des versions TLS inférieures à 1.2

Vous devez réinstaller Pip, faites

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

ou pour Python global:

curl https://bootstrap.pypa.io/get-pip.py | sudo python
Parth Choudhary
la source
Cela a résolu le problème sur la version Mac OS Sierra 10.12.6. THX!
Zhenhua
Fonctionne pour moi sur High Sierra. Je vous remercie.
rustyshackleford
28

J'ai utilisé la version pip3 9.0.1et je n'ai pas pu installer de packages récemment via la commande pip3 install.

Version Mac OS: EI Captain 10.11.5.

version python: 3.5

J'ai essayé la commande:

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

Cela n'a pas fonctionné pour moi.

J'ai donc désinstallé l'ancien pip et installé la dernière version 10.0.0en entrant ceci:

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

Maintenant, mon problème était résolu. Si vous utilisez le python2, vous pouvez remplacer le python3 par python. J'espère que cela fonctionne aussi pour vous.

Au fait, pour certaines recrues comme moi, vous devez entrer le code: sudo -i

pour bien gagner la racine :) Bonne chance!

Aix-la-Chapelle
la source
En écho à ce qui précède, j'étais sur le point d'essayer de réinstaller Python et pip, mais cela a fonctionné pour moi. Je vous remercie!
MikeJannino
ne pas ignorer "sudo -i"
Dung
27

Vous voyez probablement ce bogue ; voir aussi ici .

La meilleure solution consiste à déclasser pip à celui qui n'utilise SSL: easy_install pip==1.2.1. Cela vous fait perdre l'avantage de sécurité lié à l'utilisation de SSL. La vraie solution est d'utiliser une distribution Python liée à une bibliothèque SSL plus récente.

Dougal
la source
1
Merci Dougal, mais pip 1.2.1 ne fonctionne pas non plus. -Voulez-vous me faire savoir comment je peux mettre à jour ma distribution python vers une bibliothèque SSL plus récente?
contentclown
en fait, je viens de tout faire fonctionner pour le moment. merci pour votre aide, Dougal!
contentclown
7
@ user2348946 Qu'avez-vous fait pour que cela soit utile aux gens à l'avenir?
Dougal
1
@DannyStaple Oui, c'est exactement ce que j'ai suggéré. Bien sûr, utiliser une installation non système de Python n'est pas très difficile; J'utilise personnellement Anaconda , qui est idéal pour les applications numériques mais qui fonctionnerait pour tout.
Dougal du
1
@ user13107 Oui; comme indiqué dans les commentaires sur la réponse acceptée, PyPI requiert désormais TLS 1.2. Vous devrez mettre à jour votre installation Python.
Dougal
18

Une autre cause d'erreurs SSL peut être une mauvaise heure du système - les certificats ne seront pas validés s'ils sont trop éloignés du présent.

pidge
la source
Je vous remercie!! C'était la seule solution qui fonctionnait pour moi. L'horloge de mon serveur était BIEN éteinte.
Adam Spiers
6

J'ai résolu un problème similaire en ajoutant l' --trusted-host pypi.python.orgoption

Ruben
la source
6

Pour installer tout autre package, je dois utiliser la dernière version de pip, car il 9.0.1a ce problème SSL. Pour mettre à niveau le pip par pip lui-même, je dois d'abord résoudre ce problème SSL. Pour sauter hors de cette boucle sans fin, je trouve ce seul moyen qui fonctionne pour moi.

  1. Retrouvez la dernière version de pip sur cette page: https://pypi.org/simple/pip/
  2. Téléchargez le .whlfichier de la dernière version.
  3. Utilisez pip pour installer le dernier pip. (Utilisez votre propre dernière version ici)

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

Maintenant, le pip est la dernière version et peut tout installer.

Jianzhe Gu
la source
5

Solution - Installez n'importe quel package en marquant ci-dessous les hôtes de confiance

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

Solution temporaire

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

Solution permanente - Mettez à jour votre PIP (problème avec la version 9.0.1) à la dernière.

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
RollerCosta
la source
3

macOS Sierra 10.12.6. Impossible d'installer quoi que ce soit via pip (python installé via homebrew). Toutes les réponses ci-dessus n'ont pas fonctionné.

Finalement, la mise à niveau de python 3.5 vers 3.6 a fonctionné.

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

puis suivez les suggestions supplémentaires de brew, c'est-à-dire écraser le lien vers python.

apatsekin
la source
1
si vous utilisez Mac OS 10.12, votre problème initial est peut-être lié à la récente dépréciation de TLS pip. Voir cet article pour plus de détails. pipa cessé de prendre en charge les anciens protocoles de sécurité sur 10.12 et les versions antérieures.
Anupam
3

J'ai eu le même problème. Je viens de mettre à jour le python de 2.7.0 à 2.7.15 . Cela résout le problème.

Vous pouvez télécharger ici .

Günay Gültekin
la source
Je viens de réparer ça pour la dixième fois. Bien que comprenant très bien le problème sur OSX et sachant quoi et où est l'échec, chaque «solution» est différente du passé. Cette fois, le vote va à l'installation 2.7.15 sur OSX. Simple et efficace. De plus, il y a des notes dans la version concernant le problème SSL / OpenSSH. Bravo et merci beaucoup!
Marc
3

Comme indiqué ci-dessus par blackjar, les lignes ci-dessous ont fonctionné pour moi

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

Vous devez donner les trois --trusted-host options. J'essayais avec seulement le premier après avoir regardé les réponses, mais cela n'a pas fonctionné pour moi comme ça.

abhi
la source
2

Vous pouvez également utiliser conda pour installer des packages: voir http://conda.pydata.org

conda install nltk

La meilleure façon d'utiliser conda est de télécharger Miniconda, mais vous pouvez aussi essayer

pip install conda
conda init
conda install nltk
Travis Oliphant
la source
7
En toute honnêteté, si pip installcela ne fonctionne pas, recommander d'installer un autre gestionnaire de paquets via pip est ... eh bien, vous savez.
Dave Newton
Cela a fonctionné pour moi. J'ai installé anaconda après avoir installé python. Je n'avais aucune idée qu'anaconda avait son propre programme d'installation jusqu'à ce que je lise ceci. Donc, c'est la réponse qui a fonctionné pour moi. Le commentaire de Travis aborde le problème de la poule / œuf car il a recommandé d'installer miniconda.
si NewQuestion voteFERMER
2

Pour moi, le dernier pip (1.5.6) fonctionne bien avec le paquet nltk non sécurisé si vous lui dites simplement de ne pas être si pointilleux en matière de sécurité:

pip install --upgrade --force-reinstall --allow-all-external --allow-unverified ntlk nltk
plaques de cuisson
la source
C'est une vieille réponse. pipSur quelle version êtes-vous?
plaques de cuisson du
1
Je suppose que le dernier. Je pense que j'ai résolu le problème en désinstallant tout (Python 2.7, pip, etc.) et en réinstallant tout encore et encore
DaniPaniz
2

a essayé

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

et finalement travaillé, pas tout à fait comprendre pourquoi le domaine pypi.python.org est changé.

blackjar
la source
1

Si vous vous connectez via un proxy, exécutez export https_proxy=<your_proxy> (sous Unix ou Git Bash), puis réessayez l'installation.

Si vous utilisez Windows cmd, cela devient set https_proxy=<your_proxy>.

lostsoul29
la source
1

J'ai fait ce qui suit sur Windows 7 pour résoudre ce problème.

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

Le --trusted-host semble résoudre le problème SSL et * signifie chaque hôte.

Bien sûr, cela ne fonctionne pas car vous obtenez d'autres erreurs car il n'y a pas de version qui satisfait à l'exigence beautifulsoup4, mais je ne pense pas que ce problème soit lié à la question générale.

user9175040
la source
1

Il suffit de désinstaller et de réinstaller les packages pip, cela fonctionnera pour vous les gars.

Version Mac OS: High Sierra 10.13.6

version python: 3.7

J'ai donc désinstallé l'ancien pip et installé la dernière version10.0.0 en entrant ceci:

python3 -m pip uninstall pip setuptools

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

Maintenant, mon problème était résolu. Si vous utilisez le python2, vous pouvez remplacer le python3 par python. J'espère que cela fonctionne aussi pour vous.

Yash Patel
la source
0

S'il ne s'agit que de nltk, j'ai déjà rencontré un problème similaire. Essayez le guide suivant pour l'installation. Installez NLTK

Si vous êtes sûr que cela ne fonctionne avec aucun autre module, vous pouvez avoir des problèmes avec différentes versions de Python installées.

Ou essayez-le pour voir s'il indique que pip est déjà installé:

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

et voyez si cela fonctionne.

akshayb
la source
0

J'ai résolu ce problème avec les étapes suivantes (sur sles 11sp2)

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

Voici les mêmes étapes dans puppet (qui devraient fonctionner sur toutes les distributions)

  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'],
  }
spuder
la source
0

J'ai eu cela avec PyCharm et la mise à niveau de pip vers 10.0.1 a cassé le pip avec l'erreur "'main' not found in module".

Je pourrais résoudre ce problème en installant pip 9.0.3 comme on le voit dans un autre thread. Voici les étapes que j'ai suivies:

  1. Téléchargement de la version 9.0.3 de pip depuis https://pypi.org/simple/pip/ (puisque pip n'a pas pu être utilisé pour l'installer).
  2. Installez pip 9.0.3 depuis tar.gz python -m pip install pip-9.0.3.tar.gz

Tout a commencé à fonctionner après cela.

Yuriy M
la source
0

J'ai essayé certaines des réponses populaires, mais je n'ai toujours pas pu installer de bibliothèques / packages en utilisant pip install .

Mon erreur spécifique était 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain utilisait Miniconda pour Windows (programme d'installation Miniconda3-py37_4.8.3-Windows-x86.exe).

Cela fonctionne enfin quand j'ai fait ceci: pip install -r requirements.txt --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

Plus précisément, j'ai ajouté ceci pour que cela fonctionne: --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org

datchung
la source