Why PyQt5 import failed in Python3.4 with `ImportError: DLL load failed` in Windows 7?

Why PyQt5 import failed in Python3.4 with `ImportError: DLL load failed` in Windows 7?

我已经在 Windows7(64 位操作系统)中安装了 32 位Python2.7,我可以在没有任何错误。此外,我试图在同一个 Windows 7.

中安装 64 位 Python3.4 和 PyQt5

我按照 link 中给出的步骤进行操作:Verify PyQt5 Packages Installed。我已经安装了 64 位 版本的 Python3.4 和 PyQt5。正如给定的 link 中提到的,为了在我输入时验证安装: from PyQt5 import QtCore, QtGui, QtWidgets 我得到了这个错误:

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

是否可能是 32 位 Python2.7 导致此错误消息?

我该如何解决这个问题?

提前致谢!

情况太复杂。你有 64 位 Windows,可以同时安装 64 位和 32 位软件。因此,您可以在两种变体中同时安装 2.x 和 3.x。对于每个 Python 安装,可能有 4 种类型的 PyQt 可用,4 和 5,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解释器,因为error只指定了32位或64位信息。但在你的情况下,它是你的 Python 2 解释器,因为它只是你系统上的 32 位解释器。