我正在从源代码安装 ROS 并收到有关 PyQt5 的错误。
[ 88%] Running SIP generator for qt_gui_cpp_sip Python bindings...
sip: Deprecation warning: qt_gui_cpp.sip:1: %Module version number should be specified using the 'version' argument
sip: Unable to find file "QtCore/QtCoremod.sip"
Traceback (most recent call last):
File "/home/zyh/ros_catkin_ws/install_isolated/share/python_qt_binding/cmake/sip_configure.py", line 80, in <module>
subprocess.check_call(cmd)
File "/usr/lib/python2.7/subprocess.py", line 186, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/sip', '-c', '/home/zyh/ros_catkin_ws/build_isolated/qt_gui_cpp/sip/qt_gui_cpp_sip', '-b', '/home/zyh/ros_catkin_ws/build_isolated/qt_gui_cpp/sip/qt_gui_cpp_sip/pyqtscripting.sbf', '-I', '/usr/share/sip/PyQt5', '-w', '-x', 'VendorID', '-t', 'WS_X11', '-t', 'Qt_5_9_1', '-x', 'Py_v3', 'qt_gui_cpp.sip']' returned non-zero exit status 1
src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/build.make:89: recipe for target 'sip/qt_gui_cpp_sip/Makefile' failed
make[2]: *** [sip/qt_gui_cpp_sip/Makefile] Error 1
我们可以看到,错误来自subprocess.CalledProcessError: ...
。
我发现 '/usr/share/sip/PyQt5' 不存在。
我读了如何在 Ubuntu 14.10 中安装 PyQt for Python 3?但它没有帮助。我可以pip install pyqt4
并且可以PyQt4
在中找到/usr/share/sip/
。
好像ROS正在尝试寻找PyQt5
,/usr/share/sip/
如何安装PyQt5
?
答案1
询问包装系统!
apt-cache search pyqt5
给出 66 个结果,包括
...
pyqt5-dev - Development files for PyQt5
pyqt5-dev-tools - Development tools for PyQt5
pyqt5-doc - Documentation for PyQt5
pyqt5-examples - Examples and demos for PyQt5
....
阅读man apt
以了解如何安装这些软件包,这可能会解决您的问题。
答案2
安装了 Python 3.8.0 alpha 1 后,简单的方法不起作用。编译 sip 和 PyQt5 也出现错误。
所以我放弃了几天。
为了完成我原来的项目,我安装了 Python 3.7.2,这样就可以成功通过 pip 安装 PyQt5 及其依赖项。
但我想知道,如果我只需复制所有 PyQt5 Qt 和 sip文件夹从 /usr/local/lib/python3.7/site-packages 到 /usr/local/lib/python3.8/site-packages?我干净地安装了 Python 3.8,令我惊讶的是,它在运行复杂的 GUI 时没有任何问题。
因此我怀疑这可以推断为:使用可运行的 PyQt5 安装最近的 Python 发行版,并将所有 PyQt5 和 Qt5 文件夹复制到新的发行版中。