如何将虚拟环境添加到 VSCode Launch.json

Posted

技术标签:

【中文标题】如何将虚拟环境添加到 VSCode Launch.json【英文标题】:How to add virtual environment to VSCode Launch.json 【发布时间】:2021-07-02 09:40:13 【问题描述】:

正如标题所示,我正在使用 VSCode 调试器来启动 django 应用程序。我使用 python3 -m virtualenv venv 创建了虚拟环境,它显示在下面我想要的地方。我已经检查了 VSCode 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

在启动 VSCode 调试器时,我需要将 source venv/bin/activate 命令放在下面的 launch.json 文件中的哪个位置才能运行它?


    "version": "0.2.0",
    "configurations": [
        
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "$workspaceFolder/helloworld/manage.py",
            "args": [
                "runserver",
            ],
            "django": true
        ,
    ]

【问题讨论】:

【参考方案1】:

您无需将activate 添加到launch.json。你有 3 个选项(我更喜欢第一个选项):

    提供虚拟环境中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 的环境变量,它指向虚拟环境。我在.bashrc 中定义oscar 是这样的:

    export oscar=/var/work/django/oscar
    

    环境变量在哪里定义无关紧要,只要在VSCode运行之前就定义好了。

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

    一个。单击它,工作区列表会从顶部下拉。

    b.选择要为其修改 Python 的工作区,然后您将看到 Python 解释器列表。你想要的可能没有显示,所以点击“我找不到我要选择的解释器...”,然后点击“查找...”。

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

    此选项是产生与选项 #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"
    
    

【讨论】:

当python解释器在左下角没有(venv)我认为是系统python时,第三个答案不起作用。 这不是我的经验,只需要python 解释器出现在指定位置并运行。

以上是关于如何将虚拟环境添加到 VSCode Launch.json的主要内容,如果未能解决你的问题,请参考以下文章

VSCode仅为许多项目之一创建Launch.json和Tasks.json文件

如何在 VSCode 的 launch.json 中使用自定义环境变量

VSCode - Launch.json指定参数

将vscode打造无敌的IDE(14) tasks.json和launch.json配置详解,随心所欲添加自动化任务

VS Code 中的 React Native:将 iOS 设备的配置添加到 launch.json

环境调试bug无法加载源“<string>”: Source unavailable