request.exceptions.SSLError : [SSL : SSLV3_ALERT_HANDSHAKE_FAILURE] échec de la négociation de l'alerte sslv3 (_ssl.c:600)
J'ai changé la version openssl du terminal,
kingw angdeMini:icampuslist_web kingwang$ openssl version
OpenSSL 1.0.2d 9 juil. 2015
mais la version openssl de mon python est toujours une ancienne version:
kingw angdeMini:icampuslist_web kingwang$ python -c "import ssl; print(ssl.OPENSSL_VERSION)"
OpenSSL 0.9.8zg 14 juillet 2015
Je sais que le bogue de [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] est dû à l'erreur de version.
Je veux savoir comment changer la version openssl de mon python ~
Merci!
La version OpenSSL de votre Python est ce contre quoi elle est compilée. Dans ce cas, pour Mac OS X, vous devrez vous-même compiler un nouveau Python. Le moyen le plus simple de le faire est d'utiliser Homebrew : brew install python
vous fournira un nouveau Python doté d'un OpenSSL plus moderne.
Vous pouvez également corriger le bogue par vous-même en exécutant pip install pyasn1 ndg-httpsclient pyopenssl
, qui vous donnera également un OpenSSL plus récent que seules les requêtes peuvent utiliser.
C'est ma première utilisation de github pour résoudre le problème.
@Lukasa
Merci! Et mon bug est résolu maintenant.
J'utilise le pyenv pour exécuter le python. et je désinstalle le python, puis réinstalle. Ça marche! Tellement heureux ~~
Au fait, j'ai d'abord essayé la deuxième méthode, mais cela ne fonctionne pas. Ensuite, j'ai essayé le premier. Je n'en connaissais pas la raison. Peut-être que j'avais déjà installé ces packages.
Enfin, merci beaucoup !
Commentaire le plus utile
La version OpenSSL de votre Python est ce contre quoi elle est compilée. Dans ce cas, pour Mac OS X, vous devrez vous-même compiler un nouveau Python. Le moyen le plus simple de le faire est d'utiliser Homebrew :
brew install python
vous fournira un nouveau Python doté d'un OpenSSL plus moderne.Vous pouvez également corriger le bogue par vous-même en exécutant
pip install pyasn1 ndg-httpsclient pyopenssl
, qui vous donnera également un OpenSSL plus récent que seules les requêtes peuvent utiliser.