gpt4 book ai didi

python - 无法从 VS Code 调试 Django 进程

转载 作者:行者123 更新时间:2023-11-30 22:21:35 26 4
gpt4 key购买 nike

我正在尝试从 vs code 调试我的 Django 进程。但我无法让它发挥作用。在我的 ma​​nage.py 中:

import ptvsd
try:
ptvsd.enable_attach("my_secret", address=('localhost', 3000))
except:
pass

在我的docker-compose中:

version: '3'

services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
- "3000:3000"
depends_on:
- db

以及 launch.json 中的调试信息:

{
"name": "Attach (Remote Debug)",
"type": "python",
"request": "attach",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/code",
"port": 3000,
"secret": "my_secret",
"host": "localhost"
},

Dockerfile:

FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 3000

启动调试 session 时,我收到一条消息:“调试适配器进程已意外终止”。有人对如何让它发挥作用有任何建议吗?我在我的计算机和 docker 容器中都运行 ptvsd 3.0.0。

最佳答案

使用 VSCode 在 Docker 环境中调试 Django 需要检查的三点:

  • VSCode 远程调试目前仅适用于 ptvsd==3.0.0(参见 VSCode documentation )

  • 使用 docker-compose,ptvsd 需要附加到默认路由 0.0.0.0 才能从主机(如 Django 开发服务器)访问

  • ptvsd 依赖于套接字(只能连接到端口一次),并且 Django 开发服务器会在项目中的每次代码更改后重新加载 manage.py 文件。所以每次修改代码后,调试服务器都会连接失败。要解决此问题,最好的解决方案是在 wsgi.py 文件中附加 ptvsd 调试器,该文件仅加载一次。

关于python - 无法从 VS Code 调试 Django 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48611967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com