我正在使用 VS Code 的调试器来启动 Django 应用程序。 我使用
python3 -m virtualenv venv
创建了虚拟环境,它显示在下面我想要的位置。 我已经检查了 VS Code 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
我需要将
source venv/bin/activate
命令放在下面的 launch.json 文件中的什么位置才能在启动 VSCode 调试器时运行它?
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/helloworld/manage.py",
"args": [
"runserver",
],
"django": true
},
]
}
您无需将
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
的环境变量,它指向虚拟环境。我在 oscar
中定义 .bashrc
,如下所示:
export oscar=/var/work/django/oscar
环境变量定义在哪里并不重要,只要在 VSCode 运行之前定义即可。
在 VSCode 窗口底部靠近左侧的位置,您将找到正在使用的 Python 环境的名称。
a.单击它,工作区列表将从顶部下拉。
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"
}
我给了@mike-slinn +1,因为它为我指明了正确的方向,但如果你是 venv 的 Windows 用户,这正是我所做的。打开 launch.json 并添加以下内容:
"python":"C:/Users/[pathto]/[projectfolder]/.venv/Scripts/python.exe"
完整文件:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"python": "C:/Users/cullen/pathto/projectfolder/.venv/Scripts/python.exe",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
}
]}
对我有用的是在 launch.json 中添加这一行:
"python": "${workspaceFolder}/venv/bin/python",
如果您像我一样并且遵循了此文档,您将需要使用
launch.json
设置您的 pythonPath
文件。
我将
bin
直接放在工作目录的根目录中
{
"version": "0.2.0",
"configurations": [
{
...
"pythonPath": "${workspaceFolder}/bin/python",
...
}
]
}