如何在VS Code的launch.json中添加虚拟环境?

问题描述 投票:0回答:4

我正在使用 VS Code 的调试器来启动 Django 应用程序。 我使用

 python3 -m virtualenv venv
创建了虚拟环境,它显示在下面我想要的位置。 我已经检查了 VS Code Django 和调试教程,但我并没有比开始时更接近答案。

vscode ➜ /workspaces/docker-test-proj $ ls -l
total 0
drwxr-xr-x 8 vscode vscode 256 Apr  6 14:30 helloworld


vscode ➜ /workspaces/docker-test-proj/helloworld $ ls -l
total 136
drwxr-xr-x 11 vscode vscode    352 Apr  6 13:24 app
-rw-r--r--  1 vscode vscode 131072 Apr  6 13:42 db.sqlite3
drwxr-xr-x  8 vscode vscode    256 Apr  6 13:21 helloworld
-rwxr-xr-x  1 vscode vscode    666 Apr  6 13:19 manage.py
-rw-r--r--  1 vscode vscode    175 Apr  6 14:30 requirements.txt
drwxr-xr-x  6 vscode vscode    192 Apr  6 13:20 venv

我需要将

source venv/bin/activate
命令放在下面的 launch.json 文件中的什么位置才能在启动 VSCode 调试器时运行它?

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/helloworld/manage.py",
            "args": [
                "runserver",
            ],
            "django": true
        },
    ]
}
python visual-studio-code virtual-environment
4个回答
24
投票

您无需将

activate
添加到
launch.json
。你有3个选择(我更喜欢第一个选择):

  1. 提供虚拟环境中

    python
    的完整路径。这是我的启动配置之一。
    python
    入口指向虚拟环境中的
    python
    可执行映像。

        {
          "justMyCode": false,
          "name": "Ancient Warmth / Django-Oscar",
          "type": "python",
          "request": "launch",
          "program": "${workspaceFolder}/manage.py",
          "python": "${env:oscar}/bin/python",
          "args": [
            "runserver",
            "--noreload",
            "0.0.0.0:8001",
          ],
          "django": true
        },
    

    请注意,上面引用的是一个名为

    oscar
    的环境变量,它指向虚拟环境。我在
    oscar
    中定义
    .bashrc
    ,如下所示:

    export oscar=/var/work/django/oscar
    

    环境变量定义在哪里并不重要,只要在 VSCode 运行之前定义即可。

  2. 在 VSCode 窗口底部靠近左侧的位置,您将找到正在使用的 Python 环境的名称。

    a.单击它,工作区列表将从顶部下拉。

    b.选择要修改Python的工作空间,然后你将看到Python解释器的列表。您想要的解释器可能没有显示,因此单击“我找不到我想要选择的解释器...”,然后单击“查找...”。

    c.导航到您的虚拟环境并单击

    python

  3. 此选项是一种手动方式,可产生与选项 #2 相同的更改。编辑项目目录中名为

    .vscode/settings.json
    的文件,并将
    python.pythonPath
    设置为指向虚拟环境中的
    python
    程序。这是我完整的
    .vscode/settings.json
    文件:

    {
      "python.linting.pylintEnabled": true,
      "python.linting.enabled": true,
      "python.pythonPath": "/var/work/django/oscar/bin/python"
    }
    

9
投票

我给了@mike-slinn +1,因为它为我指明了正确的方向,但如果你是 venv 的 Windows 用户,这正是我所做的。打开 launch.json 并添加以下内容:

 "python":"C:/Users/[pathto]/[projectfolder]/.venv/Scripts/python.exe"

完整文件:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Python: Current File",
        "type": "python",
        "python": "C:/Users/cullen/pathto/projectfolder/.venv/Scripts/python.exe",
        "request": "launch",
        "program": "${file}",
        "console": "integratedTerminal",
        "justMyCode": true
    }
]}

0
投票

对我有用的是在 launch.json 中添加这一行:

"python": "${workspaceFolder}/venv/bin/python",

-2
投票

如果您像我一样并且遵循了此文档,您将需要使用

launch.json
设置您的
pythonPath
文件。

我将

bin
直接放在工作目录的根目录中

{
    "version": "0.2.0",
    "configurations": [
        {
            ...
            "pythonPath": "${workspaceFolder}/bin/python",
            ...
        }
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.