python - 为什么 PyQt5 在 Windows 7 中的 Python3.4 中导入失败并显示 `ImportError: DLL load failed`?

标签 python python-2.7 python-3.4 importerror pyqt5

我已经在 Windows 7(64 位操作系统)中安装了 32 位 Python2.7,并且我可以使用它,不会出现任何错误。此外,我尝试在同一个Windows 7中安装64位Python3.4和PyQt5。

我按照此链接中给出的步骤进行操作: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 导致此错误消息?

如何解决这个问题?

提前致谢!

最佳答案

情况太复杂。您拥有 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 加载失败: 此消息或多或少表明该模块采用 .dll 文件形式。
  • %1 不是有效的 Win32 应用程序。 此错误包含大部分信息。 %1,它更像是代表 PyQt5 的参数,不是有效的 Win32 应用程序。

通过查看错误,可以看出解释器正在寻找Win32应用程序,简单来说就是32位应用程序。但为什么解释器需要 32 位模块呢?猜测?因为解释器本身就是32位的!

还不能说它是Python3或Python2解释器,因为错误仅指定32或64位信息。但在您的情况下,它是您的 Python 2 解释器,因为它只是您系统上的 32 位解释器。

关于python - 为什么 PyQt5 在 Windows 7 中的 Python3.4 中导入失败并显示 `ImportError: DLL load failed`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33692066/

相关文章:

set - 用 python 订购东西......?

python - Pyaudio - 将声音数据转换为字符串的算法

Python 3.4 - 附加到列表的数字被认为是 NoneType

python pandas用iterrows迭代数据帧行很慢,可以以某种方式替换吗?

python - CherryPy 与 Postgresql session

python - 基于 Oracle 查询将标题行写入 Excel

python - 为什么字典可以解包为元组?

python - 如何在 python 3.4 中安装 xmlrpclib?

Python http requests.exceptions.ConnectionError : ('Connection aborted.' , RemoteDisconnected ('Remote end closed connection without response' ))

python - scrapy 被 redis 阻塞