2015-11-13 89 views
1

我有32位 Python2.7已經安裝在Windows 7(64位操作系統),我可以使用它沒有任何錯誤。此外,我試圖安裝64位 Python3.4和PyQt5在相同的Windows 7爲什麼PyQt5在Python3.4中導入失敗,在Windows 7中導入錯誤:DLL加載失敗?

我跟着這個鏈接的步驟:Verify PyQt5 Packages Installed。我已經安裝了64位版本的Python3.4和PyQt5。至於爲了驗證安裝在給定鏈路提到的,當我輸入:from PyQt5 import QtCore, QtGui, QtWidgets我得到這個錯誤:

ImportError: DLL load failed: %1 is not a valid Win32 application.

有沒有可能是32位Python2.7導致此錯誤消息?

我該如何解決這個問題?

在此先感謝!

+1

你是從Python 2解釋器導入這些模塊嗎?因爲我的Python 3具有相同的安裝,所以PyQt5(都是64位)和我的Python 3 64位解釋器不會引發任何錯誤。 –

+0

其實是真的!我從Python2.7解釋器導入了這些模塊。感謝您的迴應! – selimcan

回答

2

情況太複雜。您有64位Windows,可以安裝64位和32位軟件。因此,您可以在兩種變體中安裝2.x和3.x。對於每個Python安裝,可能有4種類型的PyQt可用,32位和64位版本。所以錯誤的可能性是2 * 4 * 4 * 2 = 64倍複雜。笑話分開。

讓我們看看錯誤:

ImportError: DLL load failed: %1 is not a valid Win32 application. 

讓我們來分析一下:

  • ImportError:我們正在被導入相關的錯誤的性質。 Python無法加載指定的模塊。讓我們繼續前進。
  • DLL load failed:此消息或多或少地表示該模塊的格式爲.dll文件。
  • %1 is not a valid Win32 application.此錯誤包含大部分信息。 %1,這更像是表示PyQt5的參數,不是有效的Win32應用程序。

通過查看錯誤,它可以看出,解釋器尋找一個Win32應用程序,這僅僅意味着一個32位應用程序。但爲什麼翻譯需要一個32位模塊?猜測?因爲解釋器本身是32位的!

它還不能說是Python3或Python2解釋器,因爲錯誤只能指定32或64位信息。但在你的情況下,它是你的Python 2解釋器,因爲它只是你係統上的32位解釋器。