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 并且它会正常执行时这不起作用。
即使在激活 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),
通过打开命令面板 (Ctrl+Shift+P) 选择 Python 3 解释器。
开始输入Python:选择要搜索的解释器命令,然后选择该命令。您还可以使用状态栏上的“选择 Python 环境”选项(如果可用)(它也可能已显示选定的解释器)
选择显示 venv 路径的 Python 环境选项(在我的例子中,即 ~/.virtualenvs/djangodev/bin/python)
现在,VS Code在状态栏上显示与 venv 相关的 Python 环境选项(在我的例子中,即“Python 3.7.3 64 bit ('djangodev': venv) ”)。
重新运行调试步骤。
(非常感谢Boregore提供解决方案,这只是他对实际问题的评论的重新阐述)
问题是我在为项目创建虚拟环境时使用了“python”命令而不是“python3”命令。这导致调试器在尝试运行本地服务器时执行错误的命令。我能够使用命令创建一个新的虚拟环境...
python3 -m venv env
Run Code Online (Sandbox Code Playgroud)
... Visual Studio Code 调试器在使用“Python: Django”下拉配置进行调试时能够成功识别。