【问题标题】:Why PyQt5 import failed in Python3.4 with `ImportError: DLL load failed` in Windows 7?为什么 Python3.4 中的 PyQt5 导入失败,Windows 7 中出现“ImportError: DLL load failed”?
【发布时间】:2016-02-14 23:52:24
【问题描述】:

我已经在 Windows 7(64 位操作系统)中安装了 32 位 Python2.7,我可以毫无错误地使用它。此外,我尝试在同一个 Windows 7 中安装 64 位 Python3.4 和 PyQt5。

我按照此链接中给出的步骤操作:Verify PyQt5 Packages Installed。我已经安装了 Python3.4 和 PyQt5 的 64 位 版本。如给定链接中所述,为了在我输入时验证安装:from PyQt5 import QtCore, QtGui, QtWidgets 我收到此错误:

ImportError:DLL 加载失败:%1 不是有效的 Win32 应用程序。

32位Python2.7会不会出现这个错误信息?

我该如何解决这个问题?

提前致谢!

【问题讨论】:

  • 您是从 Python 2 解释器中导入这些模块吗?因为我对 Python 3 有相同的安装,所以 PyQt5(64 位)和我的 Python 3 64 位解释器不会引发任何错误。
  • 真的!我正在从 Python2.7 解释器中导入这些模块。感谢您的回复!

标签: python python-2.7 python-3.4 importerror pyqt5


【解决方案1】:

情况太复杂。您有 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 解释器,因为错误只指定了 32 位或 64 位信息。但在您的情况下,它是您的 Python 2 解释器,因为它只是您系统上的 32 位解释器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-08
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多