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