安装PyQt

10

我正在尝试在我的 Mac 上安装 PyQt,以便我能够安装 Python Ghost。我已经安装了 Qt 和 SIP。我已经下载了 PyQt,但是当我运行时

python configure-ng.py    

我遇到了以下错误:

Error: Use the --qmake argument to explicitly specify a working Qt qmake.

有什么建议吗?


你应该明确指定一个可用的Qt make。 - Hyperboreus
我该怎么做?我需要下载一个qmake还是自己创建一个?我对Qt不是很熟悉。 - steeling
3
@user3417176。qmake是Qt的一部分。您需要指定它的路径,例如--qmake path/to/qt/bin/qmake - ekhumoro
2
它应该安装在你安装Qt的地方。如果你没有指定其他位置,我认为它默认安装在你的主目录下。python configure.py --qmake ~/Qt/5.2.1/clang_64/bin/qmake - GP89
1
如果它不在主目录中,那么它可能会在 /usr/local 的某个地方。 - Ben
显示剩余2条评论
3个回答

7

由于您使用的是Mac电脑,我建议使用Homebrew。这在我之前的一天成功了,但要花费很长时间完成:

brew install pyqt

不幸的是,这与虚拟环境不兼容。 - Jonatan
我最近发现了 vext.pyqt4vext.pyqt5 包,可以让虚拟环境访问全局安装的 pyqt 库。使用 Riverbank 提供的二进制安装程序对我来说非常完美。 - Georg Schölly

5

configure-ng.py需要同时使用qmakesip来配置构建过程。

这个错误信息意味着configure-ng.py无法找到qmake可执行文件。您需要指定其位置,类似于这样:

$ python configure-ng.py --qmake=/path/to/qmake

qmake的位置取决于1)您如何安装它 2)您正在使用的操作系统。


对于Mac OS,在我的情况下,较为简便的方法是使用Homebrew安装sipqmake

$ brew install sip

$ brew install qt

brew将它们安装在目录:/usr/local/Cellar/

然后,运行configure-ng.py并指定两个位置:

$ python configure-ng.py --qmake=/usr/local/Cellar/qt/VERSION/bin/qmake --sip=/usr/local/Cellar/sip/VERSION/bin/sip

如果一切正常,请继续安装PyQt:
$ make 

make需要一段时间(在我的情况下大约需要20分钟)。

最后,安装:

$ make install

make 命令可能需要管理员权限 $ sudo make


3
不需要使用命令行即可使用PyCharm IDE进行操作,并且无需安装Qt:
  • 下载Python 3.6.1(双击进行安装)。
  • 下载PyCharm IDE(双击进行安装)。
    • 进入PyCharm>Preferences>Project Interpreter。
    • 将项目解释器路径指向python.3.6.1
    • '+'按钮,搜索pyqt5。选择PyQt5版本5.8.2,然后点击安装包。

enter image description here

自动安装PyQt 5.8.2和SIP。安装完成后,返回到项目解释器并确保SIP也已安装。如果未安装:'+'按钮并安装sip。

enter image description here

尝试运行这段代码,看看它是否能为您工作。 :)
#!/usr/bin/env python3

from PyQt5.QtWidgets import QLabel, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt


class Example(QWidget):

def __init__(self):
    super().__init__()
    self.initUI()

def initUI(self):
    self.setFixedSize(200, 100)
    self.setWindowTitle('Example')
    label = QLabel('Hello')
    layout = QVBoxLayout()
    layout.addWidget(label)
    layout.setAlignment(Qt.AlignCenter)
    self.setLayout(layout)


if __name__ == '__main__':

import sys
from PyQt5.QtWidgets import QApplication

app = QApplication(sys.argv)
ex = Example()
ex.show()
sys.exit(app.exec_())

enter image description here


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