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

Windows10下如何让VSCode运行pytest时正确激活Conda环境?

解决VSCode测试模块运行pytest时无法加载Conda环境DLL的问题

我之前也碰到过一模一样的情况——VSCode能正常激活Conda环境跑代码,但用测试模块跑pytest就报ImportError: DLL load failed,可在命令行激活环境后跑pytest却完全正常。核心原因是VSCode的测试运行器没完全继承Conda环境设置的系统环境变量(尤其是Windows的PATH),导致依赖的动态链接库找不到。下面是几个亲测有效的解决办法:

方法1:直接指定Conda环境内的pytest路径

这是最直接的方式,让VSCode测试模块用目标环境里的pytest,而非全局或路径错误的版本:

  • 打开VSCode设置(快捷键Ctrl+,)
  • 搜索python.testing.pytestPath
  • 将其值设为你的sqlite_test环境下pytest.exe的完整路径,比如:
    C:\Users\你的用户名\anaconda3\envs\sqlite_test\Scripts\pytest.exe
    
    要是不知道路径,激活sqlite_test环境后输入where pytest就能查到。

方法2:配置VSCode继承Conda环境的PATH

有时候问题出在DLL所在路径没被加到测试进程的PATH里,Conda激活环境时会自动把Library/bin目录加入PATH,但VSCode测试进程可能没获取到这个设置:

  1. 在项目的.vscode文件夹下创建或打开settings.json
  2. 添加以下配置:
    {
        "python.pythonPath": "C:\\Users\\你的用户名\\anaconda3\\envs\\sqlite_test\\python.exe",
        "python.testing.pytestEnabled": true,
        "terminal.integrated.env.windows": {
            "PATH": "${env:CONDA_PREFIX}\\Library\\bin;${env:PATH}"
        },
        "python.testing.pytestPath": "${env:CONDA_PREFIX}\\Scripts\\pytest.exe"
    }
    
    这里的${env:CONDA_PREFIX}会自动对应你当前选中的Conda环境根目录,不用手动写死路径。

方法3:让测试运行器在集成终端中执行

另一种思路是让VSCode的测试模块在已激活Conda环境的集成终端里运行,这样环境变量就和命令行完全一致:

  • 打开设置,搜索python.testing.pytestExecution
  • 将其值设为terminal(默认是testAdapter)
  • 重启VSCode后再运行测试,此时测试会在集成终端里执行,自动激活sqlite_test环境,和你手动在命令行跑的环境完全相同。

试完上面任意一种方法,应该就能解决DLL加载失败的问题了。我当时用的是方法2,一次就成功了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:23:25