PyQt5 QtQuick 错误 - “libQt5Network 未定义符号:_Z24qt_subtract_from_timeoutii”

Posted

技术标签:

【中文标题】PyQt5 QtQuick 错误 - “libQt5Network 未定义符号:_Z24qt_subtract_from_timeoutii”【英文标题】:PyQt5 QtQuick Error - "libQt5Network undefined symbol: _Z24qt_subtract_from_timeoutii" 【发布时间】:2016-02-08 17:35:22 【问题描述】:

在我的 Ubuntu 14.04 上成功安装 PyQt5.5.1 和 Qt5.5.1 后,我使用 QtQuick 运行了我的简单 pyqt 文件并遇到了这个错误:

libQt5Network.so.5:未定义符号:_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()

基本.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";

【问题讨论】:

【参考方案1】:

原因是我还安装了python-Qt5,它基于旧的Qt5版本。

find / -name libQt*

我可以看到一些旧的 qt lib 位于 /usr/lib 文件夹中:

/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

【讨论】:

以上是关于PyQt5 QtQuick 错误 - “libQt5Network 未定义符号:_Z24qt_subtract_from_timeoutii”的主要内容,如果未能解决你的问题,请参考以下文章

利用 PyQt5 中的 QtQuick 控件

PyQt5安装导致designer、qtopengl、可能pyqtgraph错误

pyqt:无法导入 QtQuick.Dialogs

部署后的 Linux qt 应用程序 - 符号查找错误:libQt5Core.so.5 未定义符号:uncv_getDefaultName_56

在树莓派上原生构建 qt5.7.1 得到错误:/usr/lib/arm-linux-gnueabihf/libQt5Quick.so.5: 未定义对 `QV8Engine::toVariant 的引用

未安装错误模块“QtQuick.Dialogs”