导入matplotlib与numpy时出现循环导入及初始化错误
解决matplotlib导入时的numpy循环导入及初始化失败问题
问题复现
执行以下代码:
import numpy as np import matplotlib
报错:
ImportError: cannot import name 'VisibleDeprecationWarning' from partially initialized module 'numpy' (most likely due to a circular import)
注释numpy后单独导入matplotlib.pyplot:
#import numpy as np import matplotlib.pyplot
报错:
ImportError: initialization failed
解决方案
彻底清理残留文件
单纯卸载库可能留下损坏的缓存或残留文件,导致重装后问题依旧:- 执行卸载命令:
pip uninstall -y numpy matplotlib - 找到Python的site-packages目录,手动删除所有包含
numpy、matplotlib的文件夹和.dist-info文件。可以通过以下命令获取site-packages路径:python -c "import site; print(site.getsitepackages())"
- 执行卸载命令:
安装兼容版本的库
版本不兼容是这类循环导入错误的常见原因,安装经过验证的稳定组合:- 先安装指定版本的numpy:
pip install numpy==1.26.4 - 再安装对应兼容的matplotlib版本:
pip install matplotlib==3.8.4
- 先安装指定版本的numpy:
验证修复效果
运行测试代码确认问题解决:import numpy as np import matplotlib.pyplot as plt plt.plot([1, 2, 3]) plt.show()额外注意事项
- 如果使用虚拟环境,确保操作在目标虚拟环境中执行;
- 若使用Python3.12及以上版本,需确保安装的库版本支持该Python版本(上述推荐版本均支持Python3.8-3.12);
- 避免使用
pip install --user导致的权限或路径冲突,必要时加上--force-reinstall强制重装。
内容的提问来源于stack exchange,提问作者HowCanDoesCK
相关产品推荐
相关产品推荐

