Utilisation de requêtes dans Python3 Windows via Pycharm et réception d'une erreur de module SSL non disponible
J'ai passé des heures à essayer de comprendre ce qui pouvait en être la cause. J'ai réinstallé Anaconda et je suis complètement bloqué. Lors de l'exécution de ce qui suit
requests.exceptions.SSLError: HTTPSConnectionPool(host='msft.com', port=443): Max retries exceeded with url: / (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available."))
Je reçois l'erreur
def Earlybird(daycount): url = 'https://msft.com' response = requests.get(url) print(response) Earlybird()
Je n'ai aucune idée de ce qui pourrait en être la cause. Comme Anaconda est une installation récente, je suppose que tout serait à jour, donc je ne suis pas sûr si cela indique le mauvais SSL? Je suis un peu nouveau en python, alors merci pour votre patience. -
22 Réponses :
aller sur le site Web: me donne les informations suivantes de l'outil de développement et regarde les en-têtes. (clic droit -> inspecter. puis ouvrir l'onglet réseau et vérifier les en-têtes)
Nous voyons donc que nous devons effectuer une requête vers HTTP, pas HTTPS.
import requests def Earlybird(): url = 'http://msft.com/' response = requests.get(url) print(response.text) if __name__ == '__main__': Earlybird()
Je l'ai résolu en installant OpenSSL selon la recommandation suivante: https://github.com/conda/conda/issues/8046#issuecomment-450515815
Billet correspondant dans le repo conda: https://github.com/conda/conda/issues/8046
Mise à jour: le problème (dans PyCharm) devrait être résolu dans la version 2019.1 (la version Early Access Preview est déjà disponible https://www.jetbrains.com/pycharm/nextversion/ ).
J'ai eu un problème similaire sur Windows 10 en utilisant Conda et Python 2.7.2
Après avoir essayé de nombreuses solutions, je suis tombé sur cette réponse qui suggérait qu'il y avait un problème avec openssl dans cette version.
Une fois que j'ai rétrogradé python à 3.7.1 (build h33f27b4_4), tout a bien fonctionné.
Je ne sais pas si cela a encore été résolu mais j'obtenais des problèmes similaires avec Anaconda python 3.7.3 et Idle sous Windows 10. Correction du problème en ajoutant:
<path>\Anaconda3 <path>\Anaconda3\scripts <path>\Anaconda3\Library\bin
à la variable PATH.
Bien que je ne sache pas pourquoi nous devons exporter plusieurs chemins, mais cela fonctionne pour moi, merci.
CELA A FONCTIONNÉ POUR MOI! pas "execstack ..." cmd mais celui-ci! l'ajout de chemin / anaconda3 / library / bin a fonctionné pour moi
Vous ne savez pas comment / où devons-nous ajouter ces 3 chemins?
Alex - ajoutez ces éléments à la variable d'environnement PATH (par exemple, voir la réponse Mukesh Methaniya / Neuron ci-dessous)
Où dois-je ajouter ces chemins? J'essaie d'exécuter un code python à partir d'un dossier spécifique en utilisant python get-pip.py
J'ai installé les binaires à partir d'ici: https://slproweb.com/products/Win32OpenSSL.html Ce site est mentionné sur le wiki officiel d'OpenSSL. Cela a résolu mon problème
il y a beaucoup de binaires là-bas, lequel exactement? Ce serait cool de faire un lien exact ou une capture d'écran. J'ai utilisé le premier lien avec le fichier MSI et cela a fonctionné, merci mon ami: slproweb.com/download/Win64OpenSSL_Light-1_1_1b.msi
Les utilisateurs Windows doivent définir les chemins ci-dessous:
..\Anaconda3
..\Anaconda3\scripts
..\Anaconda3\Library\bin
Par utilisateur:
À l'échelle du système (nécessite un redémarrage) :
Il n'est pas nécessaire d'ajouter des chemins d'accès à l'environnement si vous utilisez l' invite Anaconda.
Démarrez le changement d'invite Anaconda dans votre répertoire et exécutez votre script ou démarrez votre éditeur à partir de là. Cela garantira que vous êtes dans l'environnement complet d'Anaconda et l'erreur SSL s'arrêtera.
Quelle est la différence entre l'invite de commande et l'invite Anaconda? Voir cette réponse SO pour savoir quelle est la différence entre l'invite de commande et l'invite anaconda .
Remarque: Ce problème a été résolu sur Windows 10 J'étais confronté au même problème avec l'environnement virtuel sur Windows 10. Le problème a été résolu avec l'exécution de CMD en tant qu'administrateur et la création d'un nouvel environnement virtuel.
Résolu en faisant ce qui suit dans mes fenêtres 10:
mklink "C:\Users\hal\AppData\Local\Continuum\anaconda3\DLLs\libssl-1_1-x64.dll" "C:\Users\hal\AppData\Local\Continuum\anaconda3\Library\bin\libssl-1_1-x64.dll" mklink "C:\ProgramData\Anaconda3\DLLs\libcrypto-1_1-x64.dll" "C:\ProgramData\Anaconda3\Library\bin\libcrypto-1_1-x64.dll"
J'utilise VSCode pour éditer et déboguer et la seule solution qui a fonctionné pour moi était d'éditer les variables d'environnement dans Windows .. Apparemment, cela cause des problèmes mais je ne suis pas sûr de ce qu'ils sont.
Exécuter à partir de l'invite Anaconda (comme suggéré par sayth) n'était PAS une option pour moi. Ou peut-être que la suggestion était d'exécuter l'invite anaconda et de démarrer VSCode à partir de l'invite anaconda. Cela ne semble pas être une demande raisonnable.
Cela semble être un problème chronique de longue date sans réponse globale définitive qui fonctionne pour tout le monde.
La réinstallation de python en suivant les instructions d'ici a résolu ce problème pour moi: Comment puis-je installer une version précédente de Python 3 dans macOS en utilisant homebrew?
Je n'ai pas Anaconda, donc les étapes que j'ai suivies sont:
brew uninstall python3
brew install python3
Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.
un message d'erreur indiquant que Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store.
** Donc, j'ai supprimé Xcode car aucune mise à jour ne s'afficherait, puis je l'ai réinstallé.xcode-select --install
après. Si vous ne le faites pas ... vous obtiendrez une erreur: The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
brew install python3
et il s'est terminé avec succès.Utilisé ce script juste pour voir s'il fonctionne
import requests r = requests.get('https://www.office.com') print(r)
Ran le script python3 et python3.7 et la sortie était <Response [200]>
au lieu de SSLError.
Après avoir passé quelques heures à parcourir la documentation Anaconda, l'émission de tickets Github et ainsi de suite, j'ai finalement réussi à le faire fonctionner sous Windows 10 64 bits (Anaconda 3.7). La chose qui a fonctionné pour moi était d'installer le fichier binaire Win64 OpenSSL v1.1.1d à partir de https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe .
REMARQUE : la version semble avoir de l'importance! J'ai essayé le 1.1.0L (comme suggéré dans d'autres commentaires et réponses) mais avec cette version, le problème a persisté. Si vous continuez à avoir des problèmes après l'installation de certaines bibliothèques OpenSSL, continuez à essayer jusqu'à ce que vous trouviez la bonne version. Pour Anaconda 3.7 sur Windows 10, il semble que le bon soit le 1.1.1d. Je n'ai pas essayé la version allégée.
Des choses qui n'ont pas fonctionné pour moi:
ssl_verify
sur False
libcrypto
et libssl
vers un emplacement différent (voir https://github.com/conda/conda/issues/8273#issue-409800067 )Je suis sous Windows 10, j'ai eu le problème avec une nouvelle installation fraîche d'Anaconda sur python 3.7.4, ce post sur github a résolu mon problème:
(source: https://github.com/conda/conda/issues/8273 )
Je cite:
"Ma solution de contournement: j'ai copié les fichiers suivants
libcrypto-1_1-x64.* libssl-1_1-x64.*
de D: \ Anaconda3 \ Library \ bin à D: \ Anaconda3 \ DLLs.
Et cela fonctionne comme un charme! "
Mêmes versions de tout pour moi. Windows 10 Miniconda qui avait 3.7.4. Corrigé avec cette solution.
A travaillé pour moi. Merci!
Je l'ai affronté le 04/2020. Ce sont les options que j'ai essayées et la dernière solution m'a aidé.
Problème:
Le module Requests fonctionne bien lorsque j'utilise dans Spyder IDE, mais lorsque j'essaie d'exécuter le script dans Windows, il échoue avec une erreur SSL. Cela fonctionne bien pour les requêtes HTTP, mais pour les requêtes HTTPS, j'ai une erreur SSL.
Solution qui l'a corrigé:
Solution de: https://github.com/conda/conda/issues/8273
J'ai copié les fichiers suivants d'Anaconda3 \ Library \ bin vers \ Anaconda3 \ DLL
libcrypto-1_1-x64. * libssl-1_1-x64. *
Cela a fonctionné pour moi aussi! Merci d'avoir suivi toutes les étapes de débogage :)
ce problème me rendait fou jusqu'à ce que je trouve ce post qui disait de faire
brew upgrade python3
(ne pas utiliser pycharm, utiliser sublime)
Erreur lors de l'importation de SSL dans Python 3.7.4 sous macOS 10.14.6
Rencontré la même erreur SSL lors d'une installation pip après une nouvelle installation anaconda. Ce qui a aidé était l'activation de l'environnement de base avant de faire l'installation de pip. Faites une activate base
partir de cmd, puis exécutez votre script python. Vous pouvez également essayer 'conda run -n base python script.py'
- https://github.com/conda/conda/issues/8487
J'ai eu la même chose sur mon installation de Windows 10.
Anaconda3 n'ouvrirait pas Anaconda Navigator avant d'avoir copié libcrypto-1_1-x64.dll and libssl-1_1-x64.dll
d' Anaconda3\Library\bin to \Anaconda3\DLL
.
Une fois que j'ai fait cette installation de pip
dans l'environnement de base a bien fonctionné mais pas dans un autre environnement que j'ai créé. J'ai dû faire la même chose que ci-dessus dans le nouvel environnement.
Autrement dit, copiez libcrypto-1_1-x64.dll and libssl-1_1-x64.dll
de \<env folder>\Library\bin
vers \<env folder>\DLL
puis cela a bien fonctionné.
Après avoir traité le même problème sous Windows 10, la solution est assez simple:
conda init
Exécutez à nouveau votre code et cela devrait fonctionner. J'avais mis à niveau à la fois Anaconda et PyCharm, et j'avais le problème avec toutes les combinaisons de versions jusqu'à ce que je conda init
, ce qui ajoute à votre PATH un peu comme la réponse de Paul Stevens . Ne sautez pas le numéro 3 - il est essentiel de redémarrer PyCharm ou tout autre interpréteur.
Ces erreurs se produisent dans VSCode avec Python 3.7.3 mais fonctionnent correctement dans l'éditeur IDLE de Windows 10 avec Python 3.7.0.
J'utilise ce "Win64 OpenSSL v1.1.1h" -> EXE de https://slproweb.com/products/Win32OpenSSL.html
je l'ai installé et fonctionne
Assurez-vous de créer le projet avec l'option d'environnement conda sélectionnée.
Mon problème est résolu en recréant le projet et en sélectionnant "conda" dans les options "Nouvel environnement en utilisant"
voir l'image:
Installé ce slproweb.com/download/Win64OpenSSL-1_1_1c.exe à partir d'OpenSSL. J'ai résolu mon problème.