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

再运行程序,不再报错。

### 如何在 VSCode 中配置和使用 Python 虚拟环境 #### 安装并激活虚拟环境 为了防止不同项目的依赖库之间发生冲突,在 VSCode 中可以为每个项目单独创建一个虚拟环境。通过命令行工具来完成这一操作,对于基于 Conda 的方式来说,可以在 Anaconda Prompt 或者终端输入特定指令实现虚拟环境的建立[^1]。 ```bash conda create --name myenv python=3.x ``` 这里的 `myenv` 是自定义的名字,用于区分不同的工作空间;`python=3.x` 表明要使用的 Python 版本号。之后可以通过下面这条命令启动刚刚新建好的环境: ```bash conda activate myenv ``` 如果偏好于传统的 venv 模块,则可以直接利用 Python 自带的功能来进行初始化处理[^2]: ```bash python -m venv myenv ``` 这会生成名为 `myenv` 文件夹作为新的隔离开发区域,并且同样支持后续 pip 工具的操作以管理软件。 #### 设置解释器路径 当完成了上述任一种形式的虚拟环境搭建以后,下一步就是在 VSCode 内部指定正确的 Python 解释器位置。打开编辑器左侧活动栏中的扩展图标找到 Python 插件选项卡点击它右侧的小齿轮按钮进入设置页面;也可以直接按下快捷键 Ctrl+Shift+P (Windows/Linux) / Cmd+Shift+P (Mac),搜索 "Python Select Interpreter" 并选取对应项。此时应该能够看到之前所构建出来的各个独立运行时列表供选择。 一旦选择了合适的解释器版本后,VSCode 就会在该工程目录下自动识别已有的 `.venv/`, `venv/`, 和其他可能存在的虚拟环境文件夹内的可执行程序,从而确保所有相关联的任务都能顺利调用到预期的目标实例上。 #### 安装必要的 无论是哪种类型的虚拟环境,在被激活状态下都可以借助 pip 命令下载所需的第三方模块。考虑到国内网络状况可能导致速度较慢的问题,建议采用清华大学开源镜像站提供的加速服务[^3]: ```bash pip install some-package -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 以上就是关于怎样在 VSCode 下面高效地管理和切换多个 Python 运行环境的方法概述。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值