问题描述
正如标题所暗示的,我正在使用 VSCode 调试器来启动 django 应用程序。我使用 python3 -m virtualenv venv
创建了虚拟环境,它显示在下面我想要的地方。我已经查看了 VSCode 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
在启动 VSCode 调试器时,我需要将 source venv/bin/activate
命令放在下面的 launch.json 文件中的什么位置才能使其运行?
{
"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 环境的名称。
一个。单击它,工作区列表从顶部下拉。
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" }