J'essaie d'installer une bibliothèque Python en utilisant pip
, obtenant une erreur SSL:
~/projects/base pre-master± pip install xdict
Collecting xdict
Could not fetch URL https://pypi.python.org/simple/xdict/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:590) - skipping
Could not find a version that satisfies the requirement xdict (from versions: )
No matching distribution found for xdict
version de pip: pip 9.0.1
Comment corriger cette erreur?
python
python-2.7
pip
ssl-certificate
Nishant Nawarkhede
la source
la source
Réponses:
Mettez à niveau pip comme suit:
Remarque: vous devrez peut-être utiliser
sudo python
ci-dessus si ce n'est dans un environnement virtuel.(Notez que la mise
pip
à niveau avecpip
iepip install --upgrade pip
ne le mettra pas à niveau correctement. C'est juste un problème de poule et d'oeuf.pip
Ne fonctionnera pas à moins d'utiliser TLS> = 1.2.)Comme mentionné dans cette réponse détaillée , cela est dû à la récente dépréciation de TLS pour pip. Les sites Python.org ont arrêté la prise en charge des versions 1.0 et 1.1 de TLS.
Depuis la page d'état Python:
Pour les utilisateurs de PyCharm (virtualenv):
Exécutez l'environnement virtuel avec le shell. (remplacez "./venv/bin/activate" par votre propre chemin)
Lancer la mise à niveau
Redémarrez votre instance PyCharm et vérifiez votre interpréteur Python dans Preference .
la source
sudo
à l'avant en raison d'erreurs de permission refusées. Merci!curl https://bootstrap.pypa.io/get-pip.py | sudo python
sudo
si ce n'est dans un environnement virtuel. Ajouté ce bit aussi dans la réponse maintenant.curl https://bootstrap.pypa.io/get-pip.py | sudo -H python3
Mais si la
curl
commande elle-même échoue avec une erreur, ou si "la version du protocole d'alerte tlsv1" persiste même après la mise à niveaupip
, cela signifie que la version de la bibliothèque OpenSSL sous-jacente de votre système d'exploitation <1.0.1
ou la version Python <2.7.9
(ou <3.4
dans Python 3) ne prend pas en charge le nouveau protocole TLS 1.2 quipip
doit se connecter à PyPI depuis environ un an . Vous pouvez facilement le vérifier dans l'interpréteur Python:Le
AttributeError
(au lieu du '5' attendu) signifie que votressl
module Python stdlib , compilé avec l'ancienne bibliothèque openssl, ne prend pas en charge le protocole TLSv1.2 (même si la bibliothèque openssl peut ou pourrait être mise à jour plus tard).Heureusement, il peut être résolu sans mettre à niveau Python (et tout le système), en installant manuellement des packages Python supplémentaires - le guide détaillé étape par étape est disponible ici sur Stackoverflow .
la source
pip3
, pas seulementpip
- vérifier la version avec la commande-V
pour m'assurer que vous exécutiez le bon pip !!Suivre la réponse de @ Anupam sur OS X a entraîné l'erreur suivante pour moi, quelles que soient les autorisations avec lesquelles je l'ai exécuté:
Ce qui a finalement fonctionné était de télécharger un nouveau package pip (9.0.3) à partir de PyPI directement à partir de mon navigateur - https://pypi.org/simple/pip/ , d'extraire le contenu, puis d'installer le package localement:
Cela a corrigé mes
[SSL: TLSV1_ALERT_PROTOCOL_VERSION]
erreurs.la source
La solution de @Anupam a fonctionné pour moi. Cependant, j'ai dû utiliser
sudo
et spécifier l'emplacement exact de mon environnement Python virtuel:la source
Pour mettre à niveau la version locale, j'ai utilisé une légère variante:
Ce problème survient si vous conservez votre pip et vos packages dans votre répertoire personnel, comme décrit dans ce résumé .
la source
La solution suivante a fonctionné pour moi:
Il a également mis
pip
à niveau vers la version 1.10.1la source
Vérifiez votre version TLS:
Si votre version TLS est inférieure à 1.2, vous devez la mettre à niveau car le référentiel PyPI est sur une période de baisse de disponibilité de TLS précoce.
Source - Il est temps de mettre à niveau votre Python: TLS v1.2 sera bientôt obligatoire
Vous pouvez mettre à niveau la version TLS à l'aide de la commande suivante:
Cela devrait résoudre votre problème. Bonne chance!
EDIT: Vous pouvez télécharger des packages en utilisant votre propre référentiel de packages Python privé, quelle que soit la version de TLS. Référentiel de packages Python privé
la source
Cela a fonctionné pour moi. Ajouter sudo avant python
la source
Pour les utilisateurs de Python2 WIN10:
1. désinstallez soigneusement python, incluez tous les dossiers.
2. récupérez et installez le dernier python-2.7.msi (ver 2.7.15)
3.Après l'étape 2, vous constaterez peut-être que pip a également été installé.
4. Maintenant, si votre system'env n'a pas été changé, vous pouvez utiliser pip pour installer les paquets maintenant. La "version du protocole d'alerte tlsv1" n'apparaîtra pas.
la source
J'ai essayé tous les correctifs existants et ne fonctionne pas pour moi
Je réinstalle python 2.7 (installe également pip) en téléchargeant .pkg à https://www.python.org/downloads/mac-osx/
fonctionne pour moi après l'installation téléchargé pkg
la source
J'ai également rencontré ce problème. Le problème sous-jacent est que la bibliothèque ssl dans les versions Python 2.7 <2.7.9 n'est plus compatible avec le mécanisme pip.
Si vous utilisez Windows et que vous (comme nous) ne pouvez pas facilement mettre à niveau à partir d'une version incompatible de 2.7, FWIW, j'ai trouvé que si vous copiez les fichiers suivants à partir d'une autre installation de la dernière version de Python (par exemple Python 2.7. 15) sur une autre machine à votre installation:
il "améliorera" efficacement votre couche SSL vers une couche prise en charge; nous avons alors pu à nouveau utiliser pip, même pour mettre à niveau pip.
la source
Les réponses de l'installation de pip via:
curl https://bootstrap.pypa.io/get-pip.py |sudo python
oucurl https://bootstrap.pypa.io/get-pip.py | python
n'a pas fonctionné pour moi car j'ai continué à obtenir l'erreur:
J'ai dû installer
pip
manuellement via:pip
distributiontar.gz
versioncd
dans le répertoirepython setup.py install
la source
Cela a fonctionné pour moi, j'ai installé la dernière version de pip puis installé la bibliothèque ( ciscoconfparse ).
Mise à niveau de pip:
la source
myenv:
python 2.7.14
pip 9.0.1
mac osx 10.9.4
mysolution:
télécharger
get-pip.py
manuellement depuis https://packaging.python.org/tutorials/installing-packages/courir
python get-pip.py
réfs:
https://github.com/pypa/warehouse/issues/3293#issuecomment-378468534
https://packaging.python.org/tutorials/installing-packages/
la source
J'ai également rencontré ce problème sur mon windows10 et j'ai essayé toutes les réponses mais je n'ai pas résolu mon problème.
Après cela, je trouve que le fichier de configuration de pip a été modifié. Donc, j'ai défini la
pip.ini
configuration par défaut d'origine, réexécutez la commande pip et cela fonctionne pour moi!En résumé de ma solution:
Vérifiez que le pip.ini (généralement sous le chemin
C:\ProgramData\pip
) a été modifié;Si oui à l'étape 1, essayez de le réinitialiser à une configuration par défaut.
la source
Ou simplement la bibliothèque requise n'est tout simplement pas dans le dépôt. Je suis novice en Python et tous les conseils sur la mise à niveau de pip ont finalement été révélés trompeurs. Je devais juste regarder dans https://pypi.org/ , trouvant la bibliothèque (airflow dans mon cas) arrêtée à une ancienne version, après quoi elle a été renommée. Oui, cette solution idiote est également possible :-).
la source
Pour tous les utilisateurs
python3
etpip3
là-bas:puis supposez que vous voulez installer des pandas
la source