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