我正在构建一个使用PyQt的小应用程序,并且很高兴在setup.py中声明该依赖项。
然而,根据this blog(谷歌首次点击pyqt setuptools)说它无法完成,最后一段here也不会尝试这样做。
更新
install_requires = [ 'pyqt >= 0.7' ]
中显而易见的setup.py
给了我:
D:\3rd\BuildBotIcon\my-buildboticon\python>setup.py test
running test
install_dir .
Checking .pth file support in .
C:\Python26-32\pythonw.exe -E -c pass
Searching for pyqt>=4.7
Reading http://pypi.python.org/simple/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/
Reading http://www.riverbankcomputing.com/software/pyqt/download
No local packages or download links found for pyqt>=4.7
error: Could not find suitable distribution for Requirement.parse('pyqt>=4.7')
答案 0 :(得分:5)
是的,PyQT软件包没有使用distutils / setup.py进行安装,因此无法使用easy_install或pip进行安装。您需要手动下载并安装它。
这也意味着你不将它放在你的requires
元数据中,因为easy_install和pip会尝试安装它并失败。
我不知道PySide是否有用,但也没有setup.py,也拒绝使用easy_install / pip进行安装,所以不是一个好的选择。 :)
另一个选择是使用distutils重新打包PyQt,但这可能需要做很多工作。
答案 1 :(得分:2)
虽然接受的答案最初是正确的Python Wheels现在提供了一种安装C扩展包(如PyQt5)的方法,而无需从源代码编译。
PyPi目前在Python3上为多个平台提供PyQt5的.whl
个文件,包括MacOS X, Linux (any), Win32 and Win64。例如,这是在Mac上在Python3上安装PyQt5时的输出:
mfitzp@MacBook-Air ~ $ pip3 install pyqt5
Collecting pyqt5
Downloading PyQt5-5.6-cp35-cp35m-macosx_10_6_intel.whl (73.2MB)
100% |████████████████████████████████| 73.2MB 2.5kB/s
Collecting sip (from pyqt5)
Downloading sip-4.18-cp35-cp35m-macosx_10_6_intel.whl (46kB)
100% |████████████████████████████████| 49kB 1.8MB/s
Installing collected packages: sip, pyqt5
Successfully installed pyqt5-5.6 sip-4.18
如果您的目标是Python3 + PyQt5,那么在setup.py
中将PyQt5指定为普通依赖项应该没有问题。
答案 2 :(得分:1)
虽然你可以pip install pyqt5
感谢现在可用的轮子(由@mfitzp建议),但setup.py
通过install_requires
不能要求它。原因是setuptools
不知道如何安装pip
知道如何操作的轮子,而PyQT5仅作为PyPI上的轮子可用(没有源分布,即没有tar.gz
文件)。有关详细信息,请参阅此email和bug report。
答案 3 :(得分:0)
Setuptools >= 38.2.0现在知道如何安装轮子。因此,简单的答案是安装最新版本的setuptools,并要求您的开明的用户群也这样做。要在安装时强制使用setup => 38.2.0的setuptools,请参阅this relevant answer elsewhere。
自从一年前发布setuptools 38.2.0以来,该问题的所有先前答案都已过时,过分错误且没有用。从好的方面来说,这恰恰说明了为什么StackOverflow上仅存在可接受答案的原因是UX anti-pattern。