2021-10-19 ImportError: No modul

2021-10-19  本文已影响0人  安_f9f0

在使用.yml文件重现某conda环境后,运行环境内程序出现报错:

Traceback (most recent call last): File "./IntroMap.py", line 53, in <module> import matplotlib.pyplot as plt File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module> _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup() File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup globals(),locals(),[backend_name],0) File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/backend_qt4agg.py", line 18, in <module> from .backend_qt5agg import FigureCanvasQTAggBase as _FigureCanvasQTAggBase File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/backend_qt5agg.py", line 16, in <module> from .backend_qt5 import QtCore File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/backend_qt5.py", line 26, in <module> import matplotlib.backends.qt_editor.figureoptions as figureoptions File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/qt_editor/figureoptions.py", line 20, in <module> import matplotlib.backends.qt_editor.formlayout as formlayout File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/qt_editor/formlayout.py", line 56, in <module> from matplotlib.backends.qt_compat import QtGui, QtWidgets, QtCore File "/home/bcl/miniconda3/envs/IntroMap/lib/python2.7/site-packages/matplotlib/backends/qt_compat.py", line 137, in <module> from PyQt4 import QtCore, QtGui

ImportError: No module named PyQt4

当然这个报错看起来是某个包没装,当你自行搭建一个环境的时候,确实可能是你忘记装某个模块了,但这个conda环境是根据别的开发者已经写好测试好的.yml文件重现的,所以不应该是某个模块缺失的问题。

上网搜索了一下,也有说是因为用户环境中装了多个版本的python,而PyQt4只是装在了某一个python环境下,而用户在另一个环境中调用,鉴于conda环境的独立性,那肯定也不是这个原因。

最后解决:

修改所调用的.py脚本中的

matplotlib.use('QT4Agg')

matplotlib.use('QT5Agg')

问题成功解决。

为什么?

原来是因为PyQt这个包更新了,而在不指定版本的情况下,conda重现环境时会默认下载安装镜像源中PyQt包的最新版本,也就是PyQt5。然而我所使用的.yml文件的开发者在当年开发的时候,PyQt默认是4版本,所以会出现这个错误。

看中文网上还没有该解决方案,所以记录一下。

原链接:

Fresh matplotlib install broken: installs qt5, but matplotlib rc patched to require qt4 #1068

上一篇下一篇

猜你喜欢

热点阅读