import _socket: "Ошибка импорта: сбой загрузки DLL"

Я пытался установить Django и Pymc вчера. После множества проблем я решил просто переустановить Python 2.7. Я сделал это, но теперь у меня проблемы с импортом почти всего. Я получаю кучу строк, последние из которых:

 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.

Запускаю ли я python в командной строке (которая работает) и пытаюсь сделать import pipили введите вне оболочки python get-pip.py Я получаю те же самые последние строки.

Я должен заявить для записи, что у меня есть две версии python на моей машине, одна из которых 2.7, а другая, я думаю, 2.6 находится в папке canopy, но это тоже не работает, выдав сообщение об ошибке `ImportError: Нет модуля с именем os". У меня есть переменная окружения PATH, ведущая с"c:\python27;c:\python27\scripts".

Я переустанавливал Python пару раз, и попробовал вариант ремонта, но безрезультатно. У кого-нибудь есть идеи?

РЕДАКТИРОВАТЬ: Кажется, что когда я удалил Python, я забыл удалить папку C:\Python27. Я снова удалил, удалил папку, затем переустановил, и теперь он работает. Спасибо за помощь.

7 ответов

У меня была та же ошибка после обновления до Python 2.7.12.

Чтобы решить эту проблему, я сделал еще одну установку в тот же каталог. Интересно, что установщик не распознал существующую установку. Я удостоверился, чтобы проверить "добавить python.exe в путь". После этого все заработало.

Пытаясь установить python 2.7.12 снова, установщик распознал существующую установку и предложил мне варианты изменения / исправления / удаления.

Обновление: ретроспективно, возможно, причина была в том, что я непреднамеренно смешал 32-разрядную установку с 64-разрядным обновлением (или наоборот). Кажется, что Python не устанавливается в разные каталоги и не использует разные имена DLL. Установщик также не предупреждает вас. Поэтому после обновления ваши DLL представляют собой нездоровое сочетание 32- и 64-разрядных вариантов.

У меня та же проблема, после того, как я смешал среду py2 и py3 (windows 10), решил ее следующим образом:

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

ссылка: здесь

Я просто решил проблему, добавив в переменные env следующее:

      PYTHONHOME : C:\Python39\apps\Python39
import sys
sys.path.append("address where the socket module is present like C:\Python34\Lib\")
import socket

попробуйте это может сработать

Я бы предложил получить PyWin32 или PyWin64, в зависимости от архитектуры вашей системы. Если ваша система x86, получите PyWin32, в противном случае получите PyWin64, если ваша система x64. Я сам сталкивался с подобными проблемами, и получение PyWin32 помогло мне решить эти проблемы.

Похоже, что это проблема с Python 2.7.13 в данный момент. Установка 2.7.12 исправила это для меня.

На самом деле это выглядит так, как будто не удалось импортировать вызовы _socket, что вызывает эту ошибку ImportError: сбой загрузки DLL

Get-pip.py, функция b85decode() пытается импортировать _socket, который не найден. Решение этой проблемы заключается в том, что вы можете установить любую версию 3.X и запустить get-pip.py, который должен решить проблему и получить Пип установлен.

C: \ Python33> python.exe C: \ get-pip.py

Сбор pip Загрузка pip-7.1.2-py2.py3-none-any.whl (1,1 МБ) 100% |################################| 1,1 МБ 197 кБ / с

Установка собранных пакетов: pip, setuptools, wheel Успешно установлена ​​pip-7.1.2 setuptools-18.5 wheel-0.26.0

Другие вопросы по тегам