Ubuntu16.04启动Spyder报错ImportError: No module named QtSvg求助
解决Spyder3(Python2.7环境)启动时的
ImportError: No module named QtSvg问题 我来帮你拆解下问题的核心,你这是典型的Python版本环境冲突导致的:
- 你一开始用
sudo pip install spyder在Python2.7环境装了Spyder3,它依赖的是Python2版本的Qt库; - 但后来装的
python3-pyqt5和python3-pyqt5.qtsvg都是给Python3用的包,Python2的解释器根本读不到这些库,所以Spyder依赖的qtpy库自然找不到对应的PyQt5.QtSvg模块。
下面给你两个可行的解决方案,按需选择:
方案一:给Python2.7装对应版本的PyQt5(保留现有Spyder3)
既然你想继续用Python2.7的Spyder3,就得给Python2环境装匹配的PyQt5:
- 先把之前装的Python3版PyQt5卸掉(避免环境混淆,可选但推荐):
sudo apt-get remove python3-pyqt5 python3-pyqt5.qtsvg - 用Python2的pip安装PyQt5和QtSvg。注意Ubuntu默认源可能没有Python2的PyQt5包,直接用pip装:
# 确保Python2的pip可用,没有的话先装sudo apt-get install python-pip sudo pip install pyqt5 pyqt5-sip # 单独装QtSvg模块 sudo pip install pyqt5-qtsvg - 验证下安装是否成功:打开Python2.7终端,输入这段代码测试:
要是没报错,说明模块装对了,再启动Spyder应该就能正常打开了。from PyQt5.QtSvg import *
方案二:转到Python3环境重装Spyder(更长期的解决办法)
毕竟Python2.7已经停止维护好久了,Spyder后续版本也不再支持Python2,建议直接迁移到Python3:
- 先把Python2环境的Spyder卸掉:
sudo pip uninstall spyder - 安装Python3版的Spyder:
sudo apt-get install python3-pip sudo pip3 install spyder - 启动Python3版的Spyder:
这个版本会自动用你之前装的Python3版PyQt5,而且高分辨率屏幕的图标问题也能得到更好的支持。spyder3
额外小技巧:强制qtpy用PyQt4作为后端
如果上面的方案都不管用,可能是qtpy库硬要找PyQt5,但你Python2环境里其实有PyQt4,那可以手动改配置:
- 找到qtpy的配置文件,路径大概是
/usr/local/lib/python2.7/dist-packages/qtpy/config.py - 打开文件,找到
QT_API这个变量,把它改成'pyqt4':QT_API = 'pyqt4' - 保存后重启Spyder,它就会用PyQt4作为后端,不会再找PyQt5的模块了。
内容的提问来源于stack exchange,提问作者Makondo
相关产品推荐
相关产品推荐

