如何使用pip在Windows上安装PyQt4?

121

我在Windows上使用Python 3.4。当我运行脚本时,它抱怨

ImportError: No Module named 'PyQt4'

所以我尝试安装它,但pip install PyQt4会提示:

找不到满足要求 PyQt4 的任何下载文件。

尽管当我运行pip search PyQt4时,它确实出现了。我尝试pip install python-qt,成功安装了,但并没有解决问题。

我做错了什么?


5
只需从此处下载:http://www.riverbankcomputing.com/software/pyqt/download,然后使用Python运行即可。 - thecreator232
python-qt包并不会安装PyQt:它只是一个PySide/PyQt兼容性包装器。你应该像thecreator232建议的那样,安装二进制Windows包。但是,你需要先降级到python-3.3,因为目前还没有python-3.4的安装程序。 - ekhumoro
14个回答

164

这里是由Chris Golke构建的Windows wheel软件包 - Python Windows二进制软件包 - PyQt

在文件名中,cp27表示C-python 2.7版本,cp35表示python 3.5版本,以此类推。

由于Qt是一个更复杂的系统,其底层的编译C++代码库比纯python代码包更难构建,这意味着从源代码安装它可能会更加复杂。

确保您获取正确的Windows wheel文件(python版本,32/64位),然后使用pip进行安装,例如:

C:\path\where\wheel\is\> pip install PyQt4-4.11.4-cp35-none-win_amd64.whl

如果您正在运行Python 3.5的x64版本,则应正确安装。


1
在Linux下是否有pip或easy_install? - Yassine Abdul-Rahman
2
对于Linux系统,最好从软件包管理器中安装Qt和PyQt的开发包。 - Ivo
7
为什么所有的64位设备都是AMD的?这告诉我,64位的AMD版本在"此平台"上不被支持。 - Naz
10
顺带一提,使用Python 3.6通过“pip install pyqt5”安装PyQt5非常容易。 - matt wilkie
4
64位处理器是基于AMD的,因为在上世纪90年代初期到2000年代,英特尔和AMD分别创建了自己不兼容的64位架构/指令集。英特尔开发了“IA-64”,而AMD则开发了“AMD64”。简单来说,AMD的版本更好,而英特尔采用了它,并将其称为英特尔64用于他们的CPU - 两者几乎兼容(非常少的差异)。因此,目前几乎所有的64位x86-64 CPU(除了Itanium)都使用AMD64。 - user136036
显示剩余2条评论

34

QT不再支持PyQt4,但是你可以使用pip安装PyQt5:

pip install PyQt5

1
抱歉,仍然无法工作:“找不到满足要求的PyQt5版本(来自版本:)” - Igor F.
你可以尝试加上选项--trusted-host pypi.python.org。 - kien bui
3
这对我很有帮助。很高兴知道PyQt5可以与pip很好地配合使用。 - miguelmorin
当我尝试在Python 2.7.x中运行此代码时,会出现“不兼容此Python版本”的错误信息。我尝试运行命令“pip -v --trusted-host pypi.python.org install PyQt5”。 - Tom
Qt从一开始就没有支持PyQt4 - 它是由Riverbank Computing提供支持的。 - oldmud0

17

你不能使用pip。你必须从Riverbank网站下载并运行适用于你的python版本的安装程序。如果没有针对你的版本的安装程序,你将不得不安装其中一个可用的安装程序的Python版本,或者从源代码构建(这相当复杂)。其他答案和评论包含链接。


1
https://gist.github.com/ColinDuquesnoy/9619035 展示了如何为您的 Python 3.4 版本从源代码构建 PyQt。 - shelper
@shelper,你的链接已经失效。 - MarianD

11

如果您在Windows上安装PyQt4,则默认情况下文件会出现在此处:

C:\Python27\Lib\site-packages\PyQt4*.*

但它还会留下一个文件在这里:

C:\Python27\Lib\site-packages\sip.pyd

如果您将sip.pyd和PyQt4文件夹都复制到虚拟环境中,一切都会正常运行。

例如:

mkdir c:\code
cd c:\code
virtualenv BACKUP
cd c:\code\BACKUP\scripts
activate

然后使用Windows资源管理器,从C:\Python27\Lib\site-packages复制上述提到的文件(sip.pyd)和文件夹(PyQt4)到C:\code\BACKUP\Lib\site-packages\

回到命令行界面:

cd ..                 
(c:\code\BACKUP)
python backup.py

在virtualenv中尝试启动调用PyQt4脚本的问题在于,virtualenv没有安装PyQt4,也不知道如何引用上述默认安装。但是,请按照以下步骤将PyQt4复制到您的virtualenv中,然后一切都应该很好地运行。


你好,回答得很好。我试着修正了一些格式,使其与该网站上使用的标准相同。请花点时间确保它没问题。 - Deepend
虽然这是一个合理的答案,但我认为它并没有回答原始问题。原始问题是询问如何安装PyQt4,而不是如何在虚拟环境中安装它。 - three_pineapples
1
感谢您的编辑。当我尝试搜索“如何在Windows上安装pyqt4 virtualenv”时,我找不到任何信息,最终阅读了这篇文章。虽然我同意它并没有回答特定的问题,但我认为这是回答这个问题的最合适的地方,因为我无法找到任何信息,最终还是来到了这里。谢谢。 - Dan

9
之前,PyQt的.exe安装程序可以直接从网站下载页面获得。现在随着PyQt4.12的发布,这些安装程序已经被弃用了。你可以通过编译使库正常工作,但这意味着要花费很大的麻烦。否则,你可以使用以前的发行版来解决你的问题。.exe Windows安装程序可以从以下地址下载:

https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.11.4/


7

3
OP正在尝试在Windows上安装PyQt。我猜想对他们来说,从头开始编译所有东西并不是一个现实的选择。 - ekhumoro

6

使用当前最新的Python 3.6.5版本

pip3 install PyQt5

运行良好


6

我收到了这个错误信息:PyQt4-4.11.4-cp36-cp36m-win_amd64.whl不是一个有效的轮子文件名。 - Daniel González Cortés
你必须在下载"PyQt4-4.11.4-cp36-cp36m-win_amd64.whl"文件的相同目录下执行pip命令。(给定的文件名只是一个例子,你可以从帖子中给出的链接列表中选择任意一个) - Jay Joshi
@JayJoshi 我也遇到了上述错误。我正在同一目录下执行pip命令。 - Arash
@Arash,请从提供的链接中下载适当版本并相应安装。注意:文件名可能会根据您下载的PyQt4版本而改变。 - Jay Joshi
@JayJoshi问题已解决。问题在于我选择的软件包与Python版本不兼容。对于其他参考,packages文件名中的cp36表示Python3.6。 - Arash

5
尝试使用PyQt5:
pip install PyQt5

请使用此链接上的操作系统来安装PyQt4。

或者在此链接上为您的平台下载支持的wheel文件。

否则,请使用此链接上的Windows可执行安装程序。希望这可以帮助您安装PyQt4或PyQt5。


3
安装PyQt5,支持Windows 10和Python 3.5+。
使用pip安装PyQt5。

4
OP特别询问的是PyQt4,为什么他应该安装PyQt5 - Claudio Cortese
1
检查Pierce的答案。 - KEYAN TECH
抱歉,我在“审核队列”过程中没有这个信息。 - Claudio Cortese
1
你可以在评论中分享你的知识/观点。在这种情况下,有类似的答案并且解释更清晰。分享是好的,但如果我们都分享相同的信息,那对人们来说就没有用了。 - Nader Ghanbari

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