web-dev-qa-db-fra.com

import _socket: "Erreur d'importation: DLL chargement raté"

J'essayais d'installer Django et pymc hier. Après avoir rencontré beaucoup de problèmes, j'ai décidé de réinstaller Python 2.7. Je l'ai fait mais j'ai maintenant des problèmes pour importer presque tout. Je reçois un tas de lignes, dont les dernières sont:

 File "c:\python27\lib\httplib.py", line 71, in <module>
   import socket
 File "c:\python27\lib\socket.py", line 47, in <module>
   import _socket
ImportError: DLL load failed: The specified procedure could not be found.

Si j'exécute python dans la commande Prompt (qui fonctionne) et que je tente de faire import pip, ou que je tape en dehors du shell python get-pip.py, je reçois ces mêmes dernières lignes.

Je devrais mentionner pour le compte rendu que j’ai deux versions de python sur ma machine, l’une étant la version 2.7 et l’autre, I THINK 2.6 située dans un dossier canopy, mais cela ne fonctionne pas non plus, donnant un message d'erreur `ImportError: Aucun module nommé os ". J'ai ma variable d'environnement PATH avec" c:\python27; c:\python27\scripts ".

J'ai réinstallé python plusieurs fois et j'ai également essayé l'option de réparation, mais en vain. Quelqu'un a des idées?

EDIT: Il semble que lorsque j'ai désinstallé Python, j'ai négligé de supprimer le dossier C:\Python27. J'ai désinstallé à nouveau, supprimé le dossier, puis réinstallé et cela fonctionne maintenant. Merci pour l'aide.

22
user3731928

J'ai eu la même erreur après la mise à niveau vers Python 2.7.12. 

Pour le résoudre, j'ai effectué une autre installation dans le même répertoire. Fait intéressant, le programme d'installation n'a pas reconnu l'installation existante. Je me suis assuré de cocher "ajouter python.exe au chemin". Après cela, ça a fonctionné. 

En essayant d'installer à nouveau Python 2.7.12, le programme d'installation a reconnu l'installation existante et m'a proposé des options de modification/réparation/désinstallation.

Mise à jour: De manière rétrospective, la raison pourrait en être que j'ai involontairement mélangé une installation 32 bits avec une mise à jour 64 bits (ou inversement). Python ne semble pas s'installer dans des répertoires différents ni utiliser des noms de DLL différents. L'installateur ne vous avertit pas non plus. Ainsi, après la mise à jour, vos DLL sont un mélange malsain de variantes 32 et 64 bits. 

3
Sascha

J'ai le même problème, après avoir mélangé l'environnement py2 & py3 (windows 10), résolu par:

1. Uninstall all py2 & py3
2. install py 2.7.14 win32 (now newest)
3. add following enviroment varaible to system Path & PythonPath:
1) C:\Python27
2) C:\Python27\Script
3) C:\Python27\Lib
4) C:\Python27\DLLs

ref: ici

1
Kamil

Je suggérerais d’obtenir PyWin32 ou PyWin64, selon l’architecture de votre système. Si votre système est x86, procurez-vous PyWin32, sinon, utilisez PyWin64 si votre système est x64. J'ai moi-même des problèmes similaires et obtenir PyWin32 m'a aidé à résoudre ces problèmes.

0
Stormy

Cela semble être un problème avec Python 2.7.13 en ce moment. L'installation de 2.7.12 l'a corrigé pour moi.

0
Rad Apdal
import sys
sys.path.append("address where the socket module is present like C:\Python34\Lib\")
import socket

essayez ça pourrait marcher

0
Sriker Ch