错误详情:
Traceback (most recent call last):
File "D:\software\Anaconda3\envs\swim\lib\site-packages\numpy\core\__init__.py", line 22, in <module>
from . import multiarray
File "D:\software\Anaconda3\envs\swim\lib\site-packages\numpy\core\multiarray.py", line 12, in <module>
from . import overrides
File "D:\software\Anaconda3\envs\swim\lib\site-packages\numpy\core\overrides.py", line 7, in <module>
from numpy.core._multiarray_umath import (
ImportError: DLL load failed: 找不到指定的模块。During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:/code/ViT/models/import sys.py", line 4, in <module>
import numpy
File "D:\software\Anaconda3\envs\swim\lib\site-packages\numpy\__init__.py", line 150, in <module>
from . import core
File "D:\software\Anaconda3\envs\swim\lib\site-packages\numpy\core\__init__.py", line 48, in <module>
raise ImportError(msg)
ImportError:IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: Python3.7 from "D:\software\Anaconda3\envs\swim\python.exe"
* The NumPy version is: "1.21.2"and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.Original error was: DLL load failed: 找不到指定的模块。
但是在cmd窗口下运行虚拟环境是没有问题的.
1.python可以正常使用
2.库可以正常调用
但是在vscode里面出现了问题。
python模块查找路径
python中每一个.py模块即为一个模块,python搜索模块路径为
1.当前文件夹路径
2.PYTHONPATH环境变量所对应的文件路径
3.python安装的标准链接库等文件夹路径
4.pth文件列出的文件夹路径
解决办法一如下:
1、在vscode里面打印路径
import sys
for i in range(len(sys.path)):
print(sys.path[i])
输出结果:
D:\software\Anaconda3\envs\swim\python37.zip
D:\software\Anaconda3\envs\swim\DLLs
D:\software\Anaconda3\envs\swim\lib
D:\software\Anaconda3\envs\swim
D:\software\Anaconda3\envs\swim\lib\site-packages
而我的本地文件为:
D:\software\Anaconda3\envs\swim\Lib
大小写不一致。
所以只要再将这些添加到自己的环境变量中即可解决。
但是我觉得太麻烦了,每次创建一个虚拟环境都要添加环境变量。
解决办法二如下:
在VScode中使用Anaconda的虚拟环境,发现不同的虚拟环境之间的切换还是蛮容易的(点左下角的Python…按钮,可以自由选择环境)。但是不管是命令行(Terminal),还是直接点击绿色按钮运行代码,都无法正常运行,即找不到我自己安装的第三方库。但是我直接使用cmd则可以正常运行程序。
发现我的VScode命令行没有激活conda的虚拟环境。即使使用了conda activate也不行。搜索发现,我当前处在powershell的命令行模式中,而不是命令行cmd模式。
这需要通过在预设setting.json文件中添加下面的语句,可以使powershell模式变为cmd模式,其实就是加了一个指向系统cmd的指令。
"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
语句添加方法——setting.json如何打开?
1、系统的setting.json:点击左下角的齿轮按钮,或 File-Preferences-Settings。
之后添加上述语句,保存之后退出软件再重新打开。现在可以使用cmd命令了
(新版本vscode如何打开setting.json :
新版vscode如何打开settings.json-百度经验 (baidu.com)
)
在vscode终端里面输入conda activate 虚拟环境
再运行程序,不再报错。