PyQt5安装错误(QtCore模块错误:无法创建C++代码)

4
我正在尝试在我的电脑上安装PyQt5以便访问QtDesigner。
在安装过程中,我遇到了以下错误:
$ python3 configure.py --qmake=/usr/local/Cellar/qt/5.10.1/bin/qmake --sip=/usr/local/Cellar/sip/4.19.8_2/bin/sip
Querying qmake about your Qt installation...
Determining the details of your Qt installation...
This is the GPL version of PyQt 5.7 (licensed under the GNU General Public License) for Python 3.6.3 on darwin.

......
DBus v1 does not seem to be installed.
Qt v5.10.1 is being used.
The qmake executable is /usr/local/Cellar/qt/5.10.1/bin/qmake.
Qt is built as a shared library.
SIP 4.19.8 is being used.
The sip executable is /usr/local/Cellar/sip/4.19.8_2/bin/sip.
The PyQt5 Python package will be installed in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages.
PyQt5 is being built with generated docstrings.
PyQt5 is being built with 'protected' redefined as 'public'.
The Designer plugin will be installed in
/usr/local/Cellar/qt/5.10.1/plugins/designer.
The qmlscene plugin will be installed in
/usr/local/Cellar/qt/5.10.1/plugins/PyQt5.
The PyQt5 PEP 484 stub files will be installed in
/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5.
The PyQt5 .sip files will be installed in
/Library/Frameworks/Python.framework/Versions/3.6/share/sip/PyQt5.
pyuic5, pyrcc5 and pylupdate5 will be installed in
/Library/Frameworks/Python.framework/Versions/3.6/bin.
The interpreter used by pyuic5 is python3.6.
Generating the C++ source for the QtCore module...
Error: Unable to create the C++ code.

安装环境:

macOS Sierra(版本10.12.6)

PyQt5 GPL 5.7

Qt 5.10

SIP 4.19.8

有两个Python版本,但使用这两个版本都出现了相同的问题。

$ python --version
Python 2.7.14

$ python3 --version
Python 3.6.3

按照自述文件的说明安装:

使用以下方式安装了Qt:

$ brew install qt
Error: Xcode alone is not sufficient on Sierra.
Install the Command Line Tools:
 xcode-select --install

$ xcode-select --install
xcode-select: note: install requested for command line developer tools

$ brew install qt
Updating Homebrew...
==> Summary /usr/local/Cellar/qt/5.10.1: 9,375 files, 295.2MB

接下来使用以下操作安装SIP:

$brew install sip
==> Installing dependencies for sip: gdbm, openssl, readline, sqlite, xz, python, python@2
==> Summary /usr/local/Cellar/sip/4.19.8_2: 16 files, 1.1MB

更新: 使用 configure 命令时加上 --verbose 选项:
Generating the C++ source for the QtCore module...
/usr/local/Cellar/sip/4.19.8_2/bin/sip -w -f -t WS_MACX -t Qt_5_10_1 -B Qt_6_0_0 -P -o -y QtCore.pyi -c /Users/apple/Desktop/Python/PyQt5_gpl-5.7/QtCore -I sip -I /Users/apple/Desktop/Python/PyQt5_gpl-5.7/sip /Users/apple/Desktop/Python/PyQt5_gpl-5.7/sip/QtCore/QtCoremod.sip
sip: Deprecation warning: /Users/apple/Desktop/Python/PyQt5_gpl-5.7/sip/QtCore/QtCoremod.sip:23: %Module version numbers are deprecated and ignored
Error: Unable to create the C++ code.

请指导如何解决这个错误。
感谢您的支持。
3个回答

6

问题已经解决,与使用的SIP版本有关。

我使用了与PyQt5 5.7兼容的SIP版本——SIP 4.18.1,问题得到解决。

下一步:

$make

我遇到了另一个问题:

error: 'WindowOkButtonHint' : is not a member of 'Qt'
error: 'WindowCancelButtonHint' : is not a member of 'Qt'

为了解决这个问题,我编辑了~/QtCore/sipQtCoreQt.cpp文件并删除了两行有问题的代码。 http://patchwork.ozlabs.org/patch/720187/

感谢提供 SIP 版本的提示,我在我的情况下忽略了这一点。 - Michael Shigorin
1
对于PyQt5 5.15.12版本,pip install sip==5.5.0 对我来说似乎有效。 - citelao

2
我按照上面@armyoung的建议去做了,结果很好。 :)
修改configure_ng.py的确切方法是找到并删除(或注释掉)这两行代码:
argv.append('-B') 
argv.append('Qt_5_0_0') 

1

同样的问题!

首先:

sudo python configure_ng.py --verbose

--verbose参数可查看更多详细信息

然后会显示:

sip -B不支持

所以我修改了configure_ng.py文件


请在您的回答中添加更多信息,例如如何修改configure_ng.py。考虑到问题已经由原始作者回答,这是非常低质量的回答。 - Sinh Nguyen

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