Visual Studio Code 无法从调试器启动 Django 项目

Jus*_*tin 6 python django importerror

我使用 Visual Studio Code 作为 IDE,使用 Python 的 Django Web 开发框架构建 Web 应用程序。我正在 2018 款 MacBook Pro 上进行开发。我可以使用以下命令在终端中启动 Web 应用程序:

python3 manage.py runserver
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够通过调试器启动我的应用程序。为了尝试执行此操作,我导航到调试部分,创建了 launch.json 文件,并将下拉列表中的配置更改为 Python:Django。这是我的文件配置。

    {
        "name": "Python: Django",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/manage.py",
        "console": "integratedTerminal",
        "args": [
            "runserver",
            "--noreload",
            "--nothreading"
        ],
        "django": true
    },
Run Code Online (Sandbox Code Playgroud)

当我尝试使用绿色播放箭头运行调试器时,出现以下异常:

发生异常:ImportError 无法导入 Django。您确定它已安装并在您的 PYTHONPATH 环境变量中可用吗?您是否忘记激活虚拟环境?文件“/Users/justinoconnor/Desktop/Rapid Prototyping/Projects/hello_django/manage.py”,第 14 行,来自 exc 的

使用此配置启动 VS Code 调试器应该与运行 python manage.py runserver --noreload --nothreading 相同,但它不起作用。我认为这是因为在 MacBook 上我必须使用“python3”命令而不是“python”,但我在文档中没有看到任何允许我在 launch.json 配置文件中指定这一点的内容。

有谁知道如何解决这个问题,以便当我运行调试器时它会自动执行/保存我的项目?我不明白为什么当我可以在终端中输入 python3 manage.py runserver 并且它会正常执行时这不起作用。

Div*_*eja 5

即使在激活 venv(Python 虚拟环境)后启动 VS Code,我的 VS Code 环境也会出现同样的问题。

VS Code 还在状态栏上显示了 Python 环境选项“Python 3.7.3 64 位”。乍一看,这个 python 环境选项看起来是正确的。

但是,在应用 Boregore 的评论后,我的问题得到了解决。需要选择与venv python相关的 Python 环境选项作为解释器。

我通过应用以下步骤选择了与 venv 相关的正确 Python 环境选项(在我的例子中,即 ~/.virtualenvs/djangodev/bin/python),

  1. 通过打开命令面板 (Ctrl+Shift+P) 选择 Python 3 解释器。

  2. 开始输入Python:选择要搜索的解释器命令,然后选择该命令。您还可以使用状态栏上的“选择 Python 环境”选项(如果可用)(它也可能已显示选定的解释器)

  3. 选择显示 venv 路径的 Python 环境选项(在我的例子中,即 ~/.virtualenvs/djangodev/bin/python)

  4. 现在,VS Code在状态栏上显示与 venv 相关的 Python 环境选项(在我的例子中,即“Python 3.7.3 64 bit ('djangodev': venv) ”)。

  5. 重新运行调试步骤。

(非常感谢Boregore提供解决方案,这只是他对实际问题的评论的重新阐述)


Jus*_*tin 1

问题是我在为项目创建虚拟环境时使用了“python”命令而不是“python3”命令。这导致调试器在尝试运行本地服务器时执行错误的命令。我能够使用命令创建一个新的虚拟环境...

python3 -m venv env
Run Code Online (Sandbox Code Playgroud)

... Visual Studio Code 调试器在使用“Python: Django”下拉配置进行调试时能够成功识别。