PyQt5 安装错误(QtCore Module Error: Unable to create the C++ code)

A.M*_*any 4 python macos pyqt python-sip pyqt5

我正在尝试在我的 PC 上安装 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.
Run Code Online (Sandbox Code Playgroud)

安装环境:

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
Run Code Online (Sandbox Code Playgroud)

按照安装的自述说明进行操作:使用以下方法安装 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
Run Code Online (Sandbox Code Playgroud)

然后使用以下方法安装 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
Run Code Online (Sandbox Code Playgroud)

更新:在配置命令中使用 --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.
Run Code Online (Sandbox Code Playgroud)

请告知如何解决此错误。

感谢您的支持

A.M*_*any 6

设法将其整理出来,问题与使用的 SIP 版本有关。

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

下一步:

$make
Run Code Online (Sandbox Code Playgroud)

我遇到了另一个问题:

error: 'WindowOkButtonHint' : is not a member of 'Qt'
error: 'WindowCancelButtonHint' : is not a member of 'Qt'
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我编辑了 ~/QtCore/sipQtCoreQt.cpp 文件并删除了 2 个有问题的行。

http://patchwork.ozlabs.org/patch/720187/