PyQt 4.7 - 在Windows安装后导入错误

11
我一直在尝试在Vista上安装< strong>PyQt 4.7 ,但是当我尝试执行 from PyQt4 import QtCore,QtGui 时出现了ImportError。

 

ImportError:DLL加载失败:找不到指定的模块。

我已经检查了我的系统路径,并且 C:\ Python31 \ Lib \ site-packages \ PyQt4 \ bin 在其中。

我无法运行任何示例,但设计器、助手和语言家都可以正常运行。

我正在使用ActivePython 3.1,如果有区别的话。而且我之前没有安装过任何版本的PyQt。


编辑:

我已将QtCore4和GtGui4 dlls复制到< strong> C:\ Python31 \ Lib \ site-packages \ PyQt4 。这解决了一些示例问题,但我仍然无法使用示例浏览器。


我认为PyQt4没有正确安装...尝试重新安装(请参见下面更新的答案) - Jason Coon
5
投反对票的人:请给我一个理由,这样我就可以从中学习。 - Reshure
1
对于像这样的DLL错误,您可以使用微软的进程监视器(http://technet.microsoft.com/en-us/sysinternals/bb896645)来查看正在搜索哪些DLL,它们在哪里被搜索以及每个搜索是否失败/成功。 - Luke
请检查路径,确保Qt/bin的路径在Python和Python/Scripts路径之前。 - Conta
8个回答

5
你确定你的PyQt版本有\bin目录吗? 我正在运行PyQt 4.4版本,所有二进制文件都在这个目录下:

C:\Python31\Lib\site-packages\PyQt4

这也是路径所指向的地方。 看起来PyQt4安装不正确...你运行过这个命令吗?
python setup.py install

那里不应该放有垃圾桶...


设计师和所有的dll文件都在bin目录中。 - Reshure
不,我运行了二进制安装程序。 - Reshure
4
现在它可以正常工作了,我复制了bin目录下的所有文件并更改了路径。 - Reshure

2
只是想说我在WinXP安装以下软件时也遇到了同样的问题: Python 2.7 Qt 4.7.1 (10.05) PyQt 4.8.1
我使用了这些软件的Windows安装程序版本。 将 C:\ Python27 \ Lib \ site-packages \ PyQt4 \ bin 文件夹中的内容复制到主PyQt文件夹( C:\ Python27 \ Lib \ site-packages \ PyQt4 )中,这样就可以避免Python抛出“找不到dll”错误。

1

来发表一下我的看法。我在Windows 7机器上使用Windows安装程序同时安装了Python 2.6和PyQt 4.8.3(我没有运行“python setup.py install”)。

我尝试运行Spyder(需要PyQt 4.4或更高版本),但失败了,因为找不到PyQt .dlls文件。我将\Lib\site-packages\PyQt4\bin文件夹中的所有.dll文件复制到\Lib\site-packages\PyQt4文件夹中,Spyder就可以正常启动了。


1

PyQt的安装也取决于您平台上安装的Python版本。Python3.+与Python版本< 3.x不兼容。

我遇到了同样的问题,因为我的机器上安装了Python 2.7,但我下载了最新的二进制文件PyQt-Py3.2-x86-gpl-4.9.exe。如果您在这里看到,二进制文件中还提到了PyQt之后的Python版本,即Py3.2。我卸载了PyQt并安装了PyQt-Py2.7-x86-gpl-4.9.exe,它指向Python 2.7,并解决了问题。

可能他们可以在网上或某些文档中提到命名约定,使其更简单易懂。


1

我曾经遇到过同样的问题。在Eclipse中运行程序时一切正常,但是当我尝试直接从命令行运行时,仍然会出现相同的错误。

我通过重命名C:\Users\Me\AppData\Roaming\Python\Python27\site-packages\PyQt4目录来解决这个问题。(我猜测这是之前安装PyQt留下的残留文件)

我使用的是ActivePython。


0

0

我认为至少有两种可能的错误情况:

1. ImportError: DLL load failed: 找不到指定的模块。

那么你需要检查你的PyQT版本是否与你的Python兼容。换句话说,如果你使用的是Python 3.3,则只能使用Python 3.3的PyQT,而Python 3.3将无法与Python 3.4的PyQT配合使用。

这就是我遇到的问题。我通过重新安装解决了它。

2. Import Error: DLL load failed: %1 then something strange on a different encoding Win32.

那么这将是一个操作系统的问题。如果你使用32位的Python,则必须使用32位的PyQt,同样适用于64位。


0

以下是我如何在Windows 7上解决这些错误的方法:

  1. http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4获取PyQt4 wheel。确保版本与您的Python版本完全相同(即Python 3.3不适用于Python 3.4的PyQT)。如果您使用64位机器,请确保下载64位版本,反之亦然。
  2. 使用7zip提取wheel
  3. 将PyQt4-4.11.4.data(或类似名称)目录重命名为PyQt4
  4. 转到PyQt4 \ purelib \ PyQt4 \并将所有内容移动到根PyQt4文件夹中。现在可以删除purelib文件夹了
  5. 将整个PyQt4文件夹复制到Python解释器的'site-packages'文件夹中(例如C:\ Python34 \ Lib \ site-packages)
  6. 转到PyQt4 \ data \ Lib \ site-packages并将所有文件移动到C:\ Python34 \ Lib \ site-packages \

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接