Ubuntu Maverick avec Python 2.7:
Je ne sais pas quoi faire pour résoudre l'erreur d'importation suivante:
>>> import ssl
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/ssl.py", line 60, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: No module named _ssl
UPDATE: J'ai recompilé la source. Je ne parvenais pas à comprendre comment ajouter l'option --with-ssl aux réponses ci-dessous, mais je l'ai obtenu en modifiant les lignes concernant SSL dans /Modules/Setup.dist.
Avez-vous construit le Python à partir des sources? Si c'est le cas, vous avez besoin de l'option --with-ssl
lors de la construction.
Sans rapport avec la question initiale, mais parce que c'est le premier résultat de Google ... je clique sur ceci sur Google AppEngine et je devais ajouter:
libraries:
- name: ssl
version: latest
vers app.yaml pour: https://cloud.google.com/appengine/docs/python/sockets/ssl_support
Remarque: ceci semble fonctionner jusqu'à la version 2.7.9 de Python, mais pas pour les versions 2.7.10 et 2.7.11.
Si vous avez construit Python à partir des sources, ceci est juste une question de dépendances: comme OpenSSL lib n'est pas installé, python ne parvient pas à installer silencieusement le module _ssl . Vous pouvez le voir dans le rapport final de la commande make :
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _sqlite3 _ssl
_tkinter bsddb185 dbm
dl gdbm imageop
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
L'installation d'OpenSSL lib dans l'un des chemins de bibliothèque standard (/usr/lib
, /usr/local/lib
...) devrait suffire. Quoi qu'il en soit, c'est comme ça que j'ai fait :-)
Depuis que --with-ssl n'est plus reconnu, je viens d'installer libssl-dev:
Sudo apt-get install libssl-dev
Pour redémarrer le make first clean up en:
make clean
Puis relancez et exécutez les commandes suivantes les unes après les autres:
./configure
make
make test
make install
Pour plus d'informations sur OpenSSL, visitez la page d'aide Ubuntu sur OpenSSL .
J'ai eu exactement le même problème. Je l'ai corrigé sans reconstruire python, comme suit:
1) Trouvez un autre serveur avec la même architecture (i386 ou x86_64) et la même version de python (exemple: 2.7.5). Oui, c'est la partie difficile. Vous pouvez essayer d'installer Python à partir de sources sur un autre serveur si vous ne trouvez aucun serveur avec la même version de Python.
2) Sur ce autre serveur, vérifiez si l'importation ssl fonctionne. Ça devrait marcher.
3) Si cela fonctionne, essayez de trouver le _ssl lilbrary comme suit:
[root@myserver]# find / -iname _ssl.so
/usr/local/python27/lib/python2.7/lib-dynload/_ssl.so
4) Copiez ce fichier sur le serveur d'origine. Utilisez le même dossier de destination: /Usr/local/python27/lib/python2.7/lib-dynload /
5) Double vérifier le propriétaire et les autorisations:
[root@myserver]# chown root:root _ssl.so
[root@myserver]# chmod 755 _ssl.so
6) Vous devriez maintenant pouvoir importer des fichiers SSL.
Cela a fonctionné pour moi dans un environnement CentOS 6.3 x86_64 avec Python 2.7.3. De plus, j’ai fait installer python 2.6.6, mais avec ssl, cela fonctionne bien.
J'espère que ça aide.
Le trait de soulignement signifie généralement un module C (c'est-à-dire une DLL) et Python ne le trouve pas. Avez-vous construit du python vous-même? Si tel est le cas, vous devez inclure le support SSL.
Installez les packages supplémentaires pour python-ssl en utilisant votre gestionnaire de paquets ou Recompile Python en utilisant -with-ssl (nécessite l'installation d'en-têtes/de bibliothèques OpenSSL).
Sous Solaris 11, j'ai dû modifier le fichier setup.py pour inclure/opt/csw/include/openssl dans le chemin de recherche SSL include.
Uwe