升级apt包后导入matplotlib.pyplot报错:无法导入'docstring'
解决matplotlib导入报错的方法
问题根源
你系统中同时存在两个版本的matplotlib相关组件:
- 通过pip安装在
~/.local/lib/python3.10/site-packages的新版matplotlib,其中docstring模块已更名为_docstring - 通过apt安装在
/usr/lib/python3/dist-packages的旧版mpl_toolkits.mplot3d,依然尝试导入旧的docstring模块,导致版本不兼容报错
解决步骤
方法一:卸载系统版的matplotlib组件(推荐)
执行以下命令移除apt安装的相关包,让Python优先使用pip安装的新版组件:
sudo apt remove --purge python3-matplotlib python3-mpltoolkits sudo apt autoremove
之后重新导入matplotlib.pyplot即可,pip安装的matplotlib已包含完整的mplot3d功能。
方法二:修改Python导入路径(临时解决)
在代码开头添加以下内容,强制Python优先加载用户目录下的新版matplotlib组件:
import sys # 将pip安装的matplotlib路径放到导入路径最前面 sys.path.insert(0, '/home/chiu/.local/lib/python3.10/site-packages') import matplotlib.pyplot as plt
方法三:使用虚拟环境隔离依赖(彻底避免冲突)
- 创建并激活虚拟环境:
python3 -m venv ~/matplotlib_env source ~/matplotlib_env/bin/activate
- 在虚拟环境中安装matplotlib:
pip install matplotlib
之后在该虚拟环境中运行代码,完全隔离系统包的干扰。
内容的提问来源于stack exchange,提问作者Emo_Kiwi
相关产品推荐
相关产品推荐

