Scipy安装后导入Matplotlib模块报错求助,已定位文件名冲突问题
解决导入Matplotlib时出现
ImportError: cannot import name 'rcParams'的问题 嘿,我来帮你理清楚这个问题——你一开始以为是Scipy的安装问题,但其实根源完全不在Scipy上,是文件名冲突搞的鬼!
先看你贴的报错堆栈:当你执行from matplotlib import pyplot as plt时,Python首先找到了你自己写的numpy.py文件(路径是C:\Users\TimGF\Documents\Coding\Python\numpy.py),而不是系统里安装的官方Numpy库。然后这个自定义的numpy.py里又导入了Matplotlib,直接触发了循环导入,最后才抛出了ImportError: cannot import name 'rcParams'这个看似和Numpy/Matplotlib本身相关的错误。
你后续排查到的结论是对的:绝对不要把自己的Python脚本命名成和第三方库同名的名字(比如matplotlib.py、numpy.py这类)。因为Python导入模块时,会优先搜索当前工作目录下的文件,而不是site-packages里的官方库,这就相当于你自己写的文件“覆盖”了真正的库模块,自然会引发各种奇怪的导入问题。
给你几个快速解决的步骤:
- 马上把你那个和库同名的脚本(不管是
numpy.py还是你提到的matplotlib.py)重命名,比如改成my_matplotlib_demo.py或者numpy_test_script.py,只要不和任何第三方库重名就行 - 如果当前目录下有
__pycache__文件夹,直接删掉它,这是Python生成的模块缓存,避免残留的缓存文件继续搞事情 - 之后重新运行你的代码,应该就能正常导入Matplotlib和相关库了
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

