You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Anaconda(base)环境下VSCode运行Python脚本导入numpy报错 交互模式正常

问题根源

你贴的报错栈里已经把根本原因写得非常清楚了,你之前排查的时候完全漏看了这一行:

File "C:\Users\UserX\numpy.py", line 2, in <module>
    import matplotlib

问题根本不是numpy安装损坏、也不是VSCode解释器配错了——是你当前运行脚本的目录下,有一个你自己创建的、命名为numpy.py的文件,直接把Anaconda安装的正版numpy包给覆盖了。

为什么会出现你看到的所有奇怪现象

  • Python的模块搜索有固定优先级:启动解释器时,会优先把当前工作目录放到模块搜索路径的第一位,优先级远高于Anaconda的site-packages目录
  • 当你在C:\Users\UserX目录下运行python test.py时,解释器执行到import numpy,会先在当前目录找匹配的模块,直接命中了你自己写的那个numpy.py,根本不会去读取Anaconda安装的正版numpy包
  • 你那个自定义的numpy.py第二行写了import matplotlib,执行的时候就顺着你的脚本往下跑,最终因为你这个自定义文件根本没有numpy.core相关的内容,才会抛出No module named 'numpy.core'、'numpy' is not a package的报错
  • 你直接在终端开Python交互模式导入numpy没报错,是因为开交互模式时的工作目录恰好不在存放那个numpy.py的路径下,没触发本地同名文件的优先级覆盖,自然就正常加载到了Anaconda的numpy
  • 你之前重装numpy、matplotlib、Anaconda、VSCode都解决不了,是因为问题根本不在这些软件本身,就是个文件名冲突的低级疏漏

修复步骤

  • 打开路径C:\Users\UserX,找到你放的那个numpy.py文件,要么彻底删掉,要么重命名为完全不跟第三方包重名的名字(比如numpy_demo.py)
  • 顺便检查这个目录下有没有其他和第三方包同名的脚本,比如matplotlib.py、pandas.py之类的,全部改名,避免后续再触发同类覆盖问题
  • 改完之后在当前目录执行命令验证numpy加载路径是否正确:
    python -c "import numpy; print(numpy.__file__)"
    
    如果输出的路径是C:\ProgramData\Anaconda3\lib\site-packages\numpy\__init__.py,就说明已经恢复正常加载Anaconda的numpy,不会再读到本地的自定义脚本了
  • 回到VSCode重新运行你的test.py,之前的报错会全部消失

注意:写Python脚本时一定要避开和标准库、第三方包完全重名的文件名,这是Python开发里非常常见的踩坑点,哪怕你只是临时写个测试脚本,也别直接用包名当文件名。

内容的提问来源于stack exchange,提问作者tikrit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 15:15:05