Installer python ssl module sur linux sans avoir à recompiler
Est-il possible d'installer le module SSL pour python sur une machine linux qui a déjà OpenSSL installé sans recompilation du python? J'espérais que ce serait aussi simple que de copier quelques fichiers et en les incluant dans le chemin de la bibliothèque. Une version de Python est 2.4.3.
Merci!
OriginalL'auteur Phalse | 2015-01-14
Vous devez vous connecter pour publier un commentaire.
Oui. Python
setup.py
utilise la logique suivante pour détecter OpenSSL:Le point de Python est pas liaison statique contre
libssl
etlibcrypto
. (Certains la liaison statique se produit aveccctyes
, mais rien d'autre).Maintenant, la mauvaise chose est que le projet utilise le système des chemins de avant installées localement des chemins. Par exemple, le projet utilise
inc_dirs
(système) avantsearch_for_ssl_incs_in
(local). (Voir plus ci-dessous).Après l'exécution de
configure
, vous aurez uneModules/Setup
avec les lignes suivantes commenté:Encore une fois, pas de liaison statique. (Et cela suppose que la précédente version de Python pas commenté ces lignes).
De sorte que vous devriez être en mesure de construire une compatible binaire version de OpenSSL et l'utilisation
LD_LIBRARY_PATH
ouLD_PREOLAD
pour assurer Python utilise la mise à jour de votre version de OpenSSL.OpenSSL 0.9.7 et 0.9.8 sont compatible binaire. OpenSSL 1.0.0, 1.0.1 et 1.0.2 sont compatible binaire. OpenSSL 0.9.8 et 1.0.0 sont pas compatible binaire.
----------
Voici le problème avec Python installation en plaçant le système comprend avant local comprend:
Python utilisé le bas niveau de la version 0.9.8 version de OpenSSL fourni par Apple, et pas de mon récent OpenSSL 1.0.1 k. C'est malgré moi (1) l'exportation dans
CFLAGS
etLDFLAGS
; (2) l'édition deSetup
; et (3) l'édition deModules/Setup
.Et j'ai encore du chemin d'exécution problèmes à affronter, donc je vais avoir besoin d'utiliser
LD_PRELOAD_PATH
,DYNLIB_LIBRARY_PATH
, etc.Il semble comme il n'y a pas d'autre moyen pour python pour utiliser ssl sans le compiler.
oui et non. Si vous utilisez un fichier binaire compatible OpenSSL 0.9.8, alors Non, il n'y a pas besoin de recompiler le Python. Cependant, OpenSSL 0.9.8 est en Fin de Vie (EOL) et il manque la plupart des ECC et TLS 1.2, donc, vous voulez probablement pour l'éviter. OpenSSL 1.0.2 et 1.1.0 sont la façon de procéder, et dans le cas où, Oui, vous devez recompiler Python. Il est facile de le recompiler une fois que vous savez où chercher pour le SSL bits (comme illustré ci-dessus).
OriginalL'auteur jww
REMARQUE: Python >= 2.6 a déjà le support de SSL intégré, il n'y a pas besoin d'installer
ssl
paquet.Package d'installation à partir de pypi:
Si vous êtes absent
pip
de commande, de l'installer pour votre distribution:RedHat/Centos:
Debian/Ubuntu
Pouvez-vous utiliser une clé usb/disque dur externe sur la machine? Si donc il suffit de télécharger le .tar.gz fichier de la clé usb sur une autre machine (qui peut accéder à l'internet), puis de la pop la clé usb dans le ubuntu de la boîte et faire "pip install /home/username/ssl-1.16.tar.gz". Évidemment, vous devez remplacer /home/nom d'utilisateur avec le chemin d'accès au fichier.
pip n'est pas installé sur cette version de linux, pouvez-vous faire quelque chose de similaire avec yum?
C'est inutile, c'est ce qui arrive lorsque vous exécutez
pip install ssl
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Shocker...OriginalL'auteur VT_Drew