如何使用VSCode在虚拟环境中调试python代码?

时间:2019-01-02 15:35:45

标签: python debugging visual-studio-code anaconda

编辑

使用VSCode,在虚拟环境中进行调试时遇到问题,该虚拟环境具有base环境中未安装的不同软件包。用activate my_env激活环境后,我可以像使用python main.py一样正常使用环境。但是在调试时,没有看到仅安装在my_env中的软件包。如何使用VSCode在虚拟环境中调试python代码?

这是问题的摘要。其余的关于我的案件有一些具体信息。

编辑前

我正在尝试使用带有Visual Studio代码的简单代码来使用xmltodict软件包。

import xmltodict

with open('C:\\Users\\user\\foo.xml') as f:
    db_dict = xmltodict.parse(f.read())

print(db_dict)

我有一个名为my_env的虚拟环境,并且在其中安装了xmltodict软件包。当我使用activate my_env激活环境时,此代码可以正常工作。但是,当我尝试使用vscode debug 选项时,会出现No module named 'xmltodict'错误。因为vscode debug按钮打开了新的cmd并在其中运行debug命令,所以我停止了调试,并在该cmd中键入了activate my_env并尝试再次调试,但仍然找不到该模块。另外,我在vscode中尝试了木星笔记本,但它也没有看到包装。

我看到import xmltodict在vscode中用红色下划线表示Unable to import 'xmltodict',但是当我从cmd中正常运行它时,它可以工作。有时其他模块也会发生这种情况,我不知道为什么。我使用xmltodict安装了pip模块,也许会导致这种情况。

我在Windows 10上将Visual Studio Code 1.30.1与Anaconda Python 3.7.1一起使用。

如何使用VSCode在虚拟环境中调试python代码? 我看到了this个问题,但我不认为这正是我想要的吗?

2 个答案:

答案 0 :(得分:1)

设置"python.pythonPath"指向您要使用的虚拟环境中的解释器。

答案 1 :(得分:0)

我正在使用venv创建virtualenv,并使用VS代码调试代码。

我发现我们不必创建lanuch.json文件,但也可以在{project} /。vscode /文件夹下添加settings.json。 我的settings.json如下:

{
"python.testing.unittestArgs": [
    "-v",
    "-s",
    ".",
    "-p",
    "test_*.py"
],
"python.testing.pytestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.unittestEnabled": true,
"python.pythonPath": "/Users/hhh/project/bin/python"

}

我可以调试项目并运行单元测试。 希望对您有帮助。