首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spyder (pip已安装)不再以错误开始:未定义符号:_ZdaPvm,version QT_5

Spyder (pip已安装)不再以错误开始:未定义符号:_ZdaPvm,version QT_5
EN

Stack Overflow用户
提问于 2022-08-18 11:49:27
回答 2查看 313关注 0票数 0

在Ubuntu22.04(5.15.0-43泛型)上,我使用斯派德更新了pip,如下所示:

代码语言:javascript
运行
复制
$ sudo -H pip3 install --upgrade spyder

一切顺利,但当我现在启动spyder时,它会抛出这个错误:

代码语言:javascript
运行
复制
$ spyder 
Traceback (most recent call last):
  File "/usr/local/bin/spyder", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/spyder/app/start.py", line 248, in main
    from spyder.app import mainwindow
  File "/usr/local/lib/python3.10/dist-packages/spyder/app/mainwindow.py", line 57, in <module>
    from qtpy import QtWebEngineWidgets  # analysis:ignore
  File "/usr/local/lib/python3.10/dist-packages/qtpy/QtWebEngineWidgets.py", line 29, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEnginePage
ImportError: /usr/local/lib/python3.10/dist-packages/PyQt5/Qt5/lib/libQt5Network.so.5: undefined symbol: _ZdaPvm, version Qt_5

更多信息:

代码语言:javascript
运行
复制
$ python3 --version
Python 3.10.4
代码语言:javascript
运行
复制
$ pip list | grep -i pyqt
PyQt5                         5.15.6
PyQt5-Qt5                     5.15.2
PyQt5-sip                     12.11.0
PyQtWebEngine                 5.15.5
PyQtWebEngine-Qt5             5.15.2
代码语言:javascript
运行
复制
$ pip list | grep -i spyder
pyls-spyder                   0.4.0
spyder                        5.3.2
spyder-kernels                2.3.2

我无法卸载PyQt5:

代码语言:javascript
运行
复制
$ sudo -H pip uninstall pyqt5
Found existing installation: PyQt5 5.15.6
ERROR: Cannot uninstall PyQt5 5.15.6, RECORD file not found. Hint: The package was installed by sip-build.

终端机上最后一行用红色印刷。

从这一点出发,我无法找到有关如何调试它的相关信息,以使spyder再次工作。

我能做些什么来纠正这个错误?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-31 14:21:47

好吧,这个帮我修好了:

代码语言:javascript
运行
复制
$ sudo -H pip3 install --force-reinstall spyder

它可能会引发一些错误,例如:

代码语言:javascript
运行
复制
  Attempting uninstall: PyQtWebEngine
    Found existing installation: PyQtWebEngine 5.15.5
ERROR: Cannot uninstall PyQtWebEngine 5.15.5, RECORD file not found. Hint: The package was installed by sip-build.

如果您试图单独更新它,将显示:

代码语言:javascript
运行
复制
$ sudo -H pip3 install -U PyQtWebEngine
Requirement already satisfied: PyQtWebEngine in /usr/lib/python3/dist-packages (5.15.5)
Collecting PyQtWebEngine
  Using cached PyQtWebEngine-5.15.6-cp37-abi3-manylinux1_x86_64.whl (230 kB)
Requirement already satisfied: PyQt5>=5.15.4 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (5.15.7)
Requirement already satisfied: PyQtWebEngine-Qt5>=5.15.0 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (5.15.2)
Requirement already satisfied: PyQt5-sip<13,>=12.11 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (12.11.0)
Requirement already satisfied: PyQt5-Qt5>=5.15.0 in /usr/local/lib/python3.10/dist-packages (from PyQt5>=5.15.4->PyQtWebEngine) (5.15.2)
Installing collected packages: PyQtWebEngine
  Attempting uninstall: PyQtWebEngine
    Found existing installation: PyQtWebEngine 5.15.5
ERROR: Cannot uninstall PyQtWebEngine 5.15.5, RECORD file not found. Hint: The package was installed by sip-build.

因此,在这种情况下,使用incriminated上的--ignore-installed标志运行安装,安装它时应该没有任何问题:

代码语言:javascript
运行
复制
$ sudo -H pip3 install --ignore-installed PyQtWebEngine
Collecting PyQtWebEngine
  Using cached PyQtWebEngine-5.15.6-cp37-abi3-manylinux1_x86_64.whl (230 kB)
Collecting PyQtWebEngine-Qt5>=5.15.0
  Using cached PyQtWebEngine_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (67.5 MB)
Collecting PyQt5>=5.15.4
  Using cached PyQt5-5.15.7-cp37-abi3-manylinux1_x86_64.whl (8.4 MB)
Collecting PyQt5-sip<13,>=12.11
  Using cached PyQt5_sip-12.11.0-cp310-cp310-manylinux1_x86_64.whl (359 kB)
Collecting PyQt5-Qt5>=5.15.0
  Using cached PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (59.9 MB)
Installing collected packages: PyQtWebEngine-Qt5, PyQt5-Qt5, PyQt5-sip, PyQt5, PyQtWebEngine
Successfully installed PyQt5-5.15.7 PyQt5-Qt5-5.15.2 PyQt5-sip-12.11.0 PyQtWebEngine-5.15.6 PyQtWebEngine-Qt5-5.15.2

之后,上述错误将永远不会再次出现。在此作为一个例子:

代码语言:javascript
运行
复制
$ sudo -H pip3 install -U PyQtWebEngine
Requirement already satisfied: PyQtWebEngine in /usr/local/lib/python3.10/dist-packages (5.15.6)
Requirement already satisfied: PyQtWebEngine-Qt5>=5.15.0 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (5.15.2)
Requirement already satisfied: PyQt5-sip<13,>=12.11 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (12.11.0)
Requirement already satisfied: PyQt5>=5.15.4 in /usr/local/lib/python3.10/dist-packages (from PyQtWebEngine) (5.15.7)
Requirement already satisfied: PyQt5-Qt5>=5.15.0 in /usr/local/lib/python3.10/dist-packages (from PyQt5>=5.15.4->PyQtWebEngine) (5.15.2)

对所有违规的包重复相同的过程。

最后更新间谍:

代码语言:javascript
运行
复制
$ sudo -H pip3 install --force-reinstall spyder

然后瞧。应该有一个工作间谍。

作为旁白:请注意-H选项在sudo之后。此安装包在/usr/local/lib/python3.xx/dist-packages下,通常不会与apt系统范围内安装的软件包(在/usr/lib/python3/dist-packages下)冲突,而且您肯定不想接触比apt更多的东西!

我使用它来避免在用户基础上安装相同的软件包,方法是调用pip而不使用sudo,后者将在~/.local/lib/python3.10/site-packages/下为机器上的每个用户安装它们。

票数 0
EN

Stack Overflow用户

发布于 2022-08-18 12:05:11

你看过吗?这正是不应该使用sudo pip install的原因。库版本会被篡改,出现不一致的地方,而且一些东西无法工作。

使用sudo pip (最后一次)卸载Spyder和PyQT5,然后使用apt重新安装相关的包。最后,使用sudo__!). (no )升级间谍那之后一切都会好起来的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73402582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档