PyQt5 QtQuick 错误 - "libQt5Network undefined symbol: _Z24qt_subtract_from_timeoutii"
PyQt5 QtQuick Error - "libQt5Network undefined symbol: _Z24qt_subtract_from_timeoutii"
在我的 Ubuntu 14.04 上成功安装 PyQt5.5.1 和 Qt5.5.1 后,我 运行 我使用 QtQuick 的简单 pyqt 文件遇到了这个错误:
libQt5Network.so.5: undefined symbol: _Z24qt_subtract_from_timeoutii
有人 运行 以前参与过这个吗?
谢谢。
Python.py:
# Main Function
if __name__ == '__main__':
# Create main app
myApp = QApplication(sys.argv)
# Create a label and set its properties
appLabel = QQuickView()
appLabel.setSource(QUrl('basic.qml'))
# Show the Label
appLabel.show()
# Execute the Application and Exit
myApp.exec_()
sys.exit()
Basic.qml:
Grid {
id: colorPicker
rows: 2; columns: 3; spacing: 3
Rectangle { color: "white";}
Rectangle { color: "green";}
Rectangle { color: "blue"; }
Rectangle { color: "yellow";}
Rectangle { color: "steelblue";}
Rectangle { color: "black";}
}
原因是我还安装了python-Qt5,它是基于旧的Qt5版本。
与
find / -name libQt*
我可以在 /usr/lib 文件夹中看到一些旧的 qt 库:
/usr/lib/i386-linux-gnu/libQt5Network.so
/usr/lib/i386-linux-gnu/libQt5Network.so.5
/usr/lib/i386-linux-gnu/libQt5Network.so.5.2
/usr/lib/i386-linux-gnu/libQt5Network.so.5.2.1
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5.5
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5.5.1
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5.5.1
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5
问题可能是 qt 库不一致,所以我删除了 /usr/lib 中的所有 qt 库,并将它们替换为我的主文件夹中的库。它起作用了!但是不推荐这样做,因为某些内置 Ubuntu 组件可能会在 /usr/lib 文件夹中使用 libQt*。所以,只需删除 python-qt5 并重新安装 pyqt5 即可!
顺便说一下,对于与 Sip API 版本相关的错误,我们只需要 运行 删除所有与 sip 相关的包,然后重新安装 sip:
dpkg -l | grep sip
然后
sudo apt-get purge python3-sip python3-sip-dev
在我的 Ubuntu 14.04 上成功安装 PyQt5.5.1 和 Qt5.5.1 后,我 运行 我使用 QtQuick 的简单 pyqt 文件遇到了这个错误:
libQt5Network.so.5: undefined symbol: _Z24qt_subtract_from_timeoutii
有人 运行 以前参与过这个吗?
谢谢。
Python.py:
# Main Function
if __name__ == '__main__':
# Create main app
myApp = QApplication(sys.argv)
# Create a label and set its properties
appLabel = QQuickView()
appLabel.setSource(QUrl('basic.qml'))
# Show the Label
appLabel.show()
# Execute the Application and Exit
myApp.exec_()
sys.exit()
Basic.qml:
Grid {
id: colorPicker
rows: 2; columns: 3; spacing: 3
Rectangle { color: "white";}
Rectangle { color: "green";}
Rectangle { color: "blue"; }
Rectangle { color: "yellow";}
Rectangle { color: "steelblue";}
Rectangle { color: "black";}
}
原因是我还安装了python-Qt5,它是基于旧的Qt5版本。
与
find / -name libQt*
我可以在 /usr/lib 文件夹中看到一些旧的 qt 库:
/usr/lib/i386-linux-gnu/libQt5Network.so
/usr/lib/i386-linux-gnu/libQt5Network.so.5
/usr/lib/i386-linux-gnu/libQt5Network.so.5.2
/usr/lib/i386-linux-gnu/libQt5Network.so.5.2.1
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5.5
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5.5.1
/home/tad/Qt5.5.1/gcc/lib/libQt5Network.so.5
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5.5.1
/home/tad/Qt5.5.1/Tools/QtCreator/lib/qtcreator/libQt5Network.so.5
问题可能是 qt 库不一致,所以我删除了 /usr/lib 中的所有 qt 库,并将它们替换为我的主文件夹中的库。它起作用了!但是不推荐这样做,因为某些内置 Ubuntu 组件可能会在 /usr/lib 文件夹中使用 libQt*。所以,只需删除 python-qt5 并重新安装 pyqt5 即可!
顺便说一下,对于与 Sip API 版本相关的错误,我们只需要 运行 删除所有与 sip 相关的包,然后重新安装 sip:
dpkg -l | grep sip
然后
sudo apt-get purge python3-sip python3-sip-dev