python - 为什么 VSCode 在启动调试器之前不激活 conda?

标签 python visual-studio-code anaconda conda vscode-debugger

当我在 VSCode 中启动调试器时,conda 环境仅在调试过程因“缺少必需的依赖项”导入错误而停止后才被激活。立即重新启动调试器可以正常工作。

此问题发生在 Anaconda“基础”和其他环境中。

测试代码:import_pandas.py

    import pandas
    print("Pandas import succeeded!")

VSCode Python 调试控制台:

Microsoft Windows [Version 10.0.16299.1146]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\Users\peter\demo>cd c:\Users\peter\demo && 
    cmd /C "set "PYTHONIOENCODING=UTF-8" && 
    set "PYTHONUNBUFFERED=1" && 
    C:\Users\peter\AppData\Local\Anaconda3\python.exe 
        c:/Users/peter/.vscode/extensions/ms-python.python-2019.5.18678/pythonFiles/ptvsd_launcher.py 
            --default --client --host localhost --port 49530 
c:\Users\peter\demo\import_pandas.py "

...

ImportError: Missing required dependencies ['numpy']

C:\Users\peter\demo>C:/Users/peter/AppData/Local/Anaconda3/Scripts/activate

(base) C:\Users\peter\demo>conda activate base

(base) C:\Users\peter\demo>

请注意,调试器停止后,conda 会自动激活。

一旦环境被激活,调试过程就不会再失败了:

(base) C:\Users\peter\demo>cd c:\Users\peter\demo && 
    cmd /C "set "PYTHONIOENCODING=UTF-8" && 
    set "PYTHONUNBUFFERED=1" && 
    C:\Users\peter\AppData\Local\Anaconda3\python.exe 
        c:/Users/peter/.vscode/extensions/ms-python.python-2019.5.18678/pythonFiles/ptvsd_launcher.py 
        --default --client --host localhost --port 49544 
c:\Users\peter\demo\import_pandas.py "

Pandas import succeeded!

有什么方法可以在第一次调用调试器之前激活 conda?

最佳答案

并不是调试器在调试器故意停止后激活 conda 环境,而是 conda 激活速度太慢,直到调试器本身完成之后才完成(这不是虚拟环境的问题,因为它们不需要激活即可正常运行)。基本上,我们要求 VS Code 使用激活命令启动终端,然后启动调试器,但调试器能够比 conda 激活更快地运行,因此它直到调试器之后才会执行。

使用 conda 非常困难。可以关注our meta issue那就是跟踪我们试图与 conda 团队一起解决的所有问题。

关于python - 为什么 VSCode 在启动调试器之前不激活 conda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56475068/

相关文章:

c++ - Anaconda 将 C/C++ 链接器与重复库混淆

opencv - anaconda/lib/libcurl.so.4 当我在 ubuntu14 上编译 opencv 时没有可用的版本信息

python - 在球形体积内采样均匀分布的随机点

python - 拆分数据框中的字符串

python - 按键值对对列表字典进行排序

python - 如何从 VS Code 的输出中删除 [Running] python -u "c:\Users\####\Downloads\Tutorial\HelloWorld\app.py"等消息?

console - 如何配置任务以在 vscode 中运行/调试 C# 控制台应用程序

python - 从 PyPi 到 Conda-Forge

visual-studio-code - 如何在 Visual Studio Code 中禁用无限索引源文件

windows - 在 Windows 10 (Anaconda) 中将 ipynb 文件与 Jupyter notebook 相关联