64位python 2.5/2.6+;视窗7“;“导入套接字”;DLL加载错误
我安装了最新的64位Python 2.5。我运行shell,尝试导入套接字,并获得:64位python 2.5/2.6+;视窗7“;“导入套接字”;DLL加载错误,python,windows,windows-7,64-bit,32bit-64bit,Python,Windows,Windows 7,64 Bit,32bit 64bit,我安装了最新的64位Python 2.5。我运行shell,尝试导入套接字,并获得: >>> import socket Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\python25\lib\socket.py", line 45, in <module> import _socket ImportError:
>>> import socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python25\lib\socket.py", line 45, in <module>
import _socket
ImportError: DLL load failed with error code 193
>>> import socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python26-64\lib\socket.py", line 46, in <module>
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.
导入套接字
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“c:\python25\lib\socket.py”,第45行,在
导入\u套接字
ImportError:DLL加载失败,错误代码为193
我在64位Python 2.6.6中尝试了同样的方法,得到了:
>>> import socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python25\lib\socket.py", line 45, in <module>
import _socket
ImportError: DLL load failed with error code 193
>>> import socket
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:\python26-64\lib\socket.py", line 46, in <module>
import _socket
ImportError: DLL load failed: %1 is not a valid Win32 application.
导入套接字
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“c:\python26-64\lib\socket.py”,第46行,在
导入\u套接字
ImportError:DLL加载失败:%1不是有效的Win32应用程序。
怎么回事?(我仔细检查了一下,是的,操作系统是64位的)
更新:这台机器上还安装了32位python。。如果这是一个冲突,我如何安装这两个版本的python并使它们表现良好?这两个错误是相同的错误,代码193,以两种不同的方式报告。这是因为64位Python试图加载32位DLL 很难说清楚为什么会发生这种情况。也许您错误地安装了一些32位Python模块。也许路径上有些混乱
然而,通常解决这类问题的最简单方法是切换到32位Python,它在64位Windows上运行得无可挑剔。另一个好处是,您有时会希望使用仅以32位形式提供的模块–64位模块支持仍然有点不完善。当我使用py2exe构建(32位)二进制文件,然后在同一目录中运行64位解释器时,我遇到了这种情况。显然(合理地)它会选择套接字模块的本地实例(然后加载32位dll)而不是解释器的套接字模块(正确加载64位dll) 我确实安装了32位python。。问题是我使用的是virtualbox API,它使用COM,这要求python具有与virtualbox相同的位,即64位=(.否则,我只支持32位。嗯。很明显,导入_socket会导致尝试加载32位DLL。如果错误消息告诉您哪一个:%1没有多大用处,那就太好了。如果我是您,我不会尝试将我的PATH环境变量剥离为赤裸裸的。可能是您的路径上的某个东西导致了问题。请执行以下操作:在命令行中,然后启动Python,使您的实验保持在控制台窗口的本地!哦,问题是我被延迟了,也就是说,我运行脚本的目录中有一个剩余的py2exe东西,我猜里面有32位DLL。感谢您的帮助!