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

标签 python django importerror

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

python3 manage.py runserver

但是,我希望能够通过调试器启动我的应用程序。为了尝试这样做,我导航到调试部分,创建了 launch.json 文件,并将下拉列表中的配置更改为 Python: Django。这是我从文件中的配置。
    {
        "name": "Python: Django",
        "type": "python",
        "request": "launch",
        "program": "${workspaceFolder}/manage.py",
        "console": "integratedTerminal",
        "args": [
            "runserver",
            "--noreload",
            "--nothreading"
        ],
        "django": true
    },

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

Exception has occurred: ImportError Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment? File "/Users/justinoconnor/Desktop/Rapid Prototyping/Projects/hello_django/manage.py", line 14, in ) from exc



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

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

最佳答案

甚至在激活 venv(Python 虚拟环境)后启动 VS Code 也会导致我的 VS Code 环境出现同样的问题。

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

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

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

  • 通过打开命令面板 (Ctrl+Shift+P) 选择 Python 3 解释器。
  • 开始键入 Python:选择要搜索的解释器命令,然后选择命令。如果可用,您还可以使用状态栏上的“选择 Python 环境”选项(它也可能已显示选定的解释器)
  • 选择显示 venv 路径的 Python 环境选项(在我的情况下,即 ~/.virtualenvs/djangodev/bin/python)
  • 现在,VS Code 在状态栏上显示与 venv 相关的 Python Environment 选项(在我的情况下,即“Python 3.7.3 64 位 ('djangodev': venv) ”。
  • 重新运行调试步骤。

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

    关于python - Visual Studio Code 无法从调试器启动 Django 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53421991/

    相关文章:

    python - mpi4py:未加载库:/usr/local/lib/libmpi.1.dylib

    python - seaborn clustermap 不会重新排列注释数据

    python - 使用 Restful api 和 Flask 时如何将列表作为参数传递

    python - 在 python 中循环文件?

    python - 用额外的上下文装饰 as_view()

    python - PyMongo vs MongoEngine for Django

    python - 导入错误:没有名为 httplib2 的模块

    python - 使用 django 安装 mysql 数据库

    python-2.7 - 导入错误;没有名为 Quandl 的模块

    python - 导入 Geopandas 时导入错误