vscode虚拟环境下无法找到包

错误详情:

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 虚拟环境

再运行程序,不再报错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值