Ошибка импорта модуля libs на новый python 3.3.5 install - программирование

Ошибка импорта модуля libs на новый python 3.3.5 install

Я установил python 3.35, и я получаю эту ошибку:

Traceback (most recent call last):
File "C:/Users/Augusto/PycharmProjects/Plot/Database.py", line 48, in <module>
import socket
File "C:\Python33\lib\socket.py", line 47, in <module>
import _socket
ImportError: DLL load failed: The specified module could not be found

Я запускаю его на Windows 7 64 бит. Я попробовал установку на Python (установщик MSI для Windows x86-64 и установщик MSI для Windows x86), но обе представляют ту же ошибку. Я удалил установку python 2.7 из пути в том случае, если это вызвало ошибку, но не повезло.

EDIT: os.system('listdlls %d' % os.getpid())

Base               Size         Path    
0x000000001d000000 0xa000 C:\Python33\python.exe    
0x0000000077b40000 0x1a9000 C:\Windows\SYSTEM32\ntdll.dll    
0x00000000756f0000 0x3f000 C:\Windows\SYSTEM32\wow64.dll    
0x0000000075690000 0x5c000 C:\Windows\SYSTEM32\wow64win.dll    
0x0000000075680000 0x8000 C:\Windows\SYSTEM32\wow64cpu.dll    
0x000000001d000000 0xa000 C:\Python33\python.exe    
0x0000000077d20000 0x180000 C:\Windows\SysWOW64\ntdll.dll    
0x0000000076b80000 0x110000 C:\Windows\syswow64\kernel32.dll    
0x0000000076a20000 0x47000 C:\Windows\syswow64\KERNELBASE.dll    
0x000000001e000000 0x294000 C:\Windows\SysWOW64\python33.dll    
0x0000000075880000 0x100000 C:\Windows\syswow64\USER32.dll    
0x0000000076500000 0x90000 C:\Windows\syswow64\GDI32.dll    
0x0000000076b00000 0xa000 C:\Windows\syswow64\LPK.dll    
0x0000000076760000 0x9d000 C:\Windows\syswow64\USP10.dll    
0x0000000076800000 0xac000 C:\Windows\syswow64\msvcrt.dll    
0x00000000768b0000 0xa0000 C:\Windows\syswow64\ADVAPI32.dll    
0x0000000076590000 0x19000 C:\Windows\SysWOW64\sechost.dll    
0x0000000076400000 0xf0000 C:\Windows\syswow64\RPCRT4.dll    
0x0000000075750000 0x60000 C:\Windows\syswow64\SspiCli.dll    
0x0000000075740000 0xc000 C:\Windows\syswow64\CRYPTBASE.dll    
0x0000000076cd0000 0xc4a000 C:\Windows\syswow64\SHELL32.dll    
0x0000000076700000 0x57000 C:\Windows\syswow64\SHLWAPI.dll    
0x0000000062ba0000 0xbf000 C:\Windows\SysWOW64\MSVCR100.dll    
0x0000000076050000 0x60000 C:\Windows\SysWOW64\IMM32.DLL    
0x00000000757b0000 0xcc000 C:\Windows\syswow64\MSCTF.dll    
0x00000000755d0000 0x35000 C:\Windows\SysWOW64\nvinit.dll    
0x000000000f000000 0x6000 C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\detoured.dll    
0x00000000739f0000 0x4c000 C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\nvd3d9wrap.dll    
0x0000000075d80000 0x19d000 C:\Windows\syswow64\SETUPAPI.dll    
0x0000000076c90000 0x27000 C:\Windows\syswow64\CFGMGR32.dll    
0x0000000075990000 0x8f000 C:\Windows\syswow64\OLEAUT32.dll    
0x00000000760b0000 0x15c000 C:\Windows\syswow64\ole32.dll    
0x0000000075d60000 0x12000 C:\Windows\syswow64\DEVOBJ.dll    
0x00000000739b0000 0x33000 C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\nvdxgiwrap.dll    
0x0000000074010000 0x16000 C:\Windows\SysWOW64\CRYPTSP.dll\rsaenh.dll    
0x0000000066480000 0x15000 C:\Python33\DLLs\python3.dll    
0x0000000065990000 0x41000 C:\Python33\lib\site-packages\PyQt4\QtSql.pyd    
0x000000006a350000 0x34000 C:\Python33\lib\site-packages\PyQt4\QtSql4.dll    
0x000000006a4f0000 0x273000 C:\Python33\lib\site-packages\PyQt4\QtCore4.dll    
0x0000000076b10000 0x35000 C:\Windows\syswow64\WS2_32.dll    
0x00000000763f0000 0x6000 C:\Windows\syswow64\NSI.dll    
0x000000006f3d0000 0x69000 C:\Windows\SysWOW64\MSVCP100.dll    
0x00000000685c0000 0x80d000 C:\Python33\lib\site-packages\PyQt4\QtGui4.dll    
0x0000000076990000 0x7b000 C:\Windows\syswow64\COMDLG32.dll    
0x0000000073270000 0x84000 C:\Windows\WinSxS_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18201_none_ec80f00e8593ece5\COMCTL32.dll    
0x00000000718f0000 0x32000 C:\Windows\SysWOW64\WINMM.dll    
0x0000000075610000 0x51000 C:\Windows\SysWOW64\WINSPOOL.DRV    
0x0000000065970000 0x15000 C:\Python33\lib\site-packages\sip.pyd    
0x0000000050d20000 0x19c000 C:\Python33\lib\site-packages\PyQt4\QtCore.pyd    
0x0000000050770000 0x5ad000 C:\Python33\lib\site-packages\PyQt4\QtGui.pyd    
0x0000000073bd0000 0x4c000 C:\Windows\SysWOW64pphelp.dll
4b9b3361

Ответ 1

Результат из listdlls.exe показывает, что нет проблем с загрузкой зависимости ws2_32.dll(Winsock), что было бы удивительно, если не сказать больше. Поэтому проблема заключается в том, что он пытается загрузить неправильный _socket.pyd.

В комментариях было подтверждено, что загрузка _socket.pyd работала, когда абсолютный путь передавался на imp.load_dynamic. Оказывается, что в системе была указана переменная среды PYTHONPATH, включающая C:\Python27\DLLs. Решение состояло в том, чтобы просто отключить эту переменную среды.

Я был отброшен сообщением об ошибке. Обычно такой случай вызывает ошибку, которую разделяющая библиотека компилирует для другой версии Python. Тем не менее, _socket.pyd для Python 2.7 связывается с msvcr90.dll. Эта DLL не находится в пути поиска DLL. Он находится в подкаталоге %windir%\WinSxS. Он нашел, консультируясь с контекстом активации C:\Python27\python.exe, который определяет зависимость времени выполнения C во встроенном манифесте:

<dependency>
    <dependentAssembly>
        <assemblyIdentity 
            type="win32" 
            name="Microsoft.VC90.CRT" 
            version="9.0.21022.8" 
            processorArchitecture="x86" 
            publicKeyToken="1fc8b3b9a1e18e3b">
        </assemblyIdentity>
    </dependentAssembly>
</dependency>

Итак, при работе под C:\Python33\python.exe, попытка загрузить 2.7 _socket.pyd вызывает следующее исключение:

>>> imp.load_dynamic('_socket', r'C:\Python27\DLLs\_socket.pyd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: DLL load failed: The specified module could not be found.

3.3 и 3.4 построены с использованием Visual Studio 2010 вместо 2008, которые вернулись к установке msvcr100.dll на обычном пути поиска. Итак, для сравнения здесь ошибка, которую я получаю, когда пытаюсь импортировать версию 3.3 _socket.pyd в пределах 3.4:

>>> imp.load_dynamic('_socket', r'C:\Python33\DLLs\_socket.pyd')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: Module use of python33.dll conflicts with this version of Python.