2015-11-13 90 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位解释器。