【发布时间】:2019-04-24 14:36:02
【问题描述】:
我使用 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
},
当我尝试使用绿色播放箭头运行调试器时,出现以下异常:
发生异常:ImportError 无法导入 Django。你是 确保它已安装并在您的 PYTHONPATH 环境中可用 多变的?您是否忘记激活虚拟环境?文件 "/用户/justinoconnor/桌面/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 并且它会执行得很好时,这不起作用。
【问题讨论】:
-
在 VS Code 中尝试执行 Cmd + Shift + P 并编写“选择解释器”,您应该会看到一个名为“Python:选择解释器”的选项,选择它并等到您获得解释器列表.选择一个 python3 解释器,看看是否能解决问题。 (最好从您的虚拟环境中选择 python3 解释器)
-
另外,当您运行调试器时,您可以在 VS Code 终端中看到启动项目时执行的实际命令,因此您可以看到使用了哪个 python 可执行文件。
-
这就是我到目前为止所做的。我使用“终端:创建新的集成终端”启动终端,并使用“Python:选择解释器”为我的虚拟环境选择解释器,并在“./env”中选择“Python 3.7.1 64-Bit ('env':venv) /bin/python”。这在我编辑代码并在终端中键入“python3 manage.py runserver”时有效,但在我运行调试器时无效。谢谢!
-
Boregore,这是我在终端中得到的。 (env) US6749343-M001:hello_django justinoconnor$ cd "/Users/justinoconnor/Desktop/Rapid Prototyping/Projects/hello_django" ; env "PYTHONIOENCODING=UTF-8" "PYTHONUNBUFFERED=1" "/Users/justinoconnor/Desktop/Rapid Prototyping/Projects/hello_django/env/bin/python" /Users/justinoconnor/.vscode/extensions/ms-python.python- 2018.10.1/pythonFiles/experimental/ptvsd_launcher.py --client --host localhost --port 51054 "/Users/justinoconnor/Desktop/Rapid Prototyping/Projects/hello_django/manage.py" runserver --noreload --nothreading跨度>
-
好的,看起来它使用了正确的 python 可执行文件。我在这里有点摸不着头脑,但请尝试以下操作:在终端(激活虚拟环境)中运行“python --version”(验证虚拟环境中安装的版本)和“pip freeze”(列出在虚拟环境中安装模块并验证 django 安装)。
标签: python django importerror