VS Code Python 连接远程出错 'connect ECONNREFUSED'

4

我有一个在 Docker 中运行的 Django 应用程序,现在正试图将 VS Code 连接到它,以便可以进行调试。以下是我的启动文件:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Remote Attach",
            "type": "python",
            "request": "attach",
            "port": 8800,
            "host": "192.168.99.100",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        }
    ]
}

这是我的Docker文件

FROM registry.gitlab.com/datadrivendiscovery/images/primitives:ubuntu-bionic-python36-v2020.1.9

ENV PYTHONUNBUFFERED 1

RUN mkdir /bbml

WORKDIR /bbml
COPY requirements.txt /bbml/
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN pip install ptvsd
ADD . /bbml/

CMD python -m ptvsd --host 0.0.0.0 --port 3500 --wait --multiprocess -m ./manage.py runserver 0.0.0.0:8800
# CMD [ "python", "./manage.py runserver 0.0.0.0:8800" ]

这是我的Docker-compose文件。
version: '3'

services:
  web:
    build: .
    command: "python3 manage.py runserver 0.0.0.0:8800"
    container_name: bbml
    volumes:
      - .:/bbml
    ports:
      - "8800:8800"
      - "3500:3500"

如您所见,我正在端口3500上运行ptvsd,但每次我在VScode上按下绿色的运行按钮时,都会出现“连接ECONNREFUSE 192.168.99.100:3500”的错误。有什么建议吗?

我正在遵循这篇指南:https://www.youtube.com/watch?v=b78Tg-YmJZI


你不需要ptvsd,你需要debugpy - Brett Cannon
@BrettCannon 为什么这样做? - user12314098
由于ptvsd不再受支持,debugpy是新的调试器。 - Brett Cannon
2个回答

5
我也曾遇到这个问题。我在这里找到了解决方案。
基本上,你需要使用debugpy.listen(("0.0.0.0", 5678))来配置调试器。
这是因为默认情况下,debugpy只监听localhost。如果你的docker容器在另一台主机上,你需要添加0.0.0.0

1
对我来说,问题是我尝试使用的端口在远程机器上没有打开。
sudo ufw allow <portNumber>

这帮助解决了问题。谢谢! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接