環境ubuntu 16.04, qt 5.7.1, python2.7,kinect ros,
執行ros時,需要rqt_console等,但出現如下錯誤:
traceback (most recent call last):
file "/opt/ros/kinetic/bin/rqt_console", line 8, in sys.exit(main.main(sys.ar**, standalone='rqt_console.console.console'))
file "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_gui/main.py", line 59, in main
return super(main, self).main(ar**, standalone=standalone, plugin_argument_provider=plugin_argument_provider, plugin_manager_settings_prefix=str(hash(os.environ['ros_package_path'])))
file "/opt/ros/kinetic/lib/python2.7/dist-packages/qt_gui/main.py", line 338, in main
from python_qt_binding import qt_binding
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/__init__.py", line 55, in from .binding_helper import loadui, qt_binding, qt_binding_modules, qt_binding_version # @unusedimport
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 273, in getattr(sys, 'select_qt_binding_order', none),
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 108, in _select_qt_binding
qt_binding_version = binding_loader(required_modules, optional_modules)
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 154, in _load_pyqt
_named_optional_import('pyqt5.%s' % module_name)
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 139, in _named_optional_import
_named_import(name)
file "/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 130, in _named_import
module = builtins.__import__(name)
runtimeerror: the sip module implements api v11.0 to v11.2 but the module requires api v12.0
網上查了很多,但都是pyqt和sip版本不相容的解釋。暫時還不清楚ros裡面的python和系統的python是如何相關的。也重新安裝了sip4.18,但是裡面的sip.x86_64-linux-gnu.so沒有更新。測試時問題依然存在。
然後就是順這**查,發現/opt/ros/kinetic/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py中的
required_modules = [
'qtcore',
'qtgui',
'qtwidgets',
]optional_modules = [
# 'qtbluetooth',
'qtdbus',
'qtdesigner',
'qthelp',
# 'qtlocation',
# 'qt**********',
# 'qt**********widgets',
'qtnetwork',
'qnetworkauth',
# 'qtnfc',
'qtopengl',
# 'qtpositioning',
'qtprintsupport',
# 'qtqml',
# 'qtquick',
# 'qtquickwidgets',
'qtscript',
# 'qtscripttools'
# 'qtsensors',
# 'qtserialport',
# 'qtsql',
'qtsvg',
'qttest',
# 'qtwebchannel',
# 'qtwebengine', # qt 5.6 and higher
# 'qtwebenginecore',
# 'qtwebenginewidgets',
# 'qtwebkitwidgets', # qt 5.0 - 5.5
# 'qtwebsockets',
# 'qtx11extras',
'qtxml',
# 'qtxmlpatterns',
]
required_modules 正常繫結,但optional_modules 有些不能繫結。就乙個個遍歷,最後按上面注釋後,rqt_console,rqt_graph可用。 解決QT開發的exe軟體不能執行問題
困擾好幾天的問題,終於今天得到解決,心情很是激動,所以今晚特抽出一些時間寫一寫總結,希望其他人在遇到此類問題的時候少花一些時間,少走彎路。的現象,那怎麼解決呢?好吧,見證奇蹟的時刻,因為你所拷貝的檔案並不是執行所需要的動態庫檔案,有些是 bin,有些是 mingw bin,有些是 qt bin,那到...
解決Expresso不能執行的方法
expresso是一塊非常不錯的工具,安裝後用了一段時間感覺非常好。可是突然有一天,雙擊圖示後發現無法開啟,沒有任何反應。上網查詢解決辦法,發現網上關於expresso的資料並不是很多。然後向expresso的官方技術支援求助,支援方反饋的資訊如下 確認當前expresso的程序沒有執行,解除安裝程...
qt解決雙擊不能正常執行問題 win下)
我用的版本是qt5.1 首先按錯誤提示將所缺的dll拷貝到exe所在目錄,然後將libegl.dll release 或libegld.dll debug 拷貝到此目錄下,即可。將程式移植到別處,如果是debug版本,系統中可能缺失msvcp100d.dll,這個需要vs2010環境 我用的vs20...