繁体   English   中英

64位python 2.5 / 2.6 + windows 7“导入套接字”DLL加载错误

[英]64-bit python 2.5/2.6+windows 7 “import socket” DLL load error

我安装了最新的64位Python 2.5。 我运行shell,并尝试import socket ,并获得:

>>> 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

我尝试使用64位Python 2.6.6,并得到:

>>> 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.

这是怎么回事? (我仔细检查过,是的,操作系统是64位)。

更新:我也在这台机器上安装了32位python ..如果这是一个冲突,我怎么能安装这两个版本的python并让它们表现得很好?

这两个错误是相同的错误,代码193,报告了两种不同的方式。 这是因为您的64位Python正在尝试加载32位DLL。

很难确切说明为什么会发生这种情况。 也许您错误地安装了一些32位Python模块。 也许路径上有一些混乱。

但是,解决此类问题的最简单方法是切换到32位Python,它在64位Windows上运行无可挑剔。 另一个好处是,您有时希望使用仅以32位形式提供的模块 - 64位模块支持仍然有点不完整。

当我使用py2exe构建(32位)二进制文件然后在同一目录中运行64位解释器时,我发生了这种情况。 显然(并且合理地)它将在解释器的套接字模块(正确加载64位dll)上选择套接字模块的本地实例(然后加载32位dll)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM