Vscode-docker: 你如何设置 debugpy 启动器以使用 python3?

创建于 2020-07-02  ·  4评论  ·  资料来源: microsoft/vscode-docker

https://github.com/microsoft/vscode-docker/blob/master/resources/python/launcher.py

这个文件有一部分 args 被传递给 docker exec。

dockerExecArgs = ['docker', 'exec', '-d', containerId, 'python', '/debugpy/launcher'] + args

我的调试失败,因为容器接收python作为python2.7,但是我的程序需要python3,在容器中是可用的。 如果我将此 launcher.py 文件更改为 python3,则它可以工作。 我可以以某种方式将它传递给启动器吗?

Python Debug fix released

所有4条评论

@dwbelliston您使用的是什么 Python 基础映像? 我很惊讶python映射到 Python2.7 的任何地方...

这是 dockerfile 和 launch.json。

来自 docker 文件的基本图像在这里: https :

Dockerfile:

# https://github.com/GoogleCloudPlatform/cloud-sdk-docker
# Image provides: gcloud, gsutil, bq, python and more
FROM gcr.io/google.com/cloudsdktool/cloud-sdk:latest

COPY requirements.txt /opt/src/
RUN pip3 install -r /opt/src/requirements.txt

COPY src/ /opt/src

WORKDIR /opt/src/

CMD ["python3", "main.py"]

启动文件

    {
      "name": "Docker:Raw",
      "type": "docker",
      "request": "launch",
      "preLaunchTask": "docker-run:raw",
      "platform": "python",
      "python": {
        "pathMappings": [
          {
            "localRoot": "${workspaceFolder}/raw/src",
            "remoteRoot": "/opt/src"
          }
        ],
        "projectType": "general"
      }
    }

谢谢! 看起来该图像确实使用 2.7 作为默认值。 我认为我们可以安全地将我们的扩展中的 launcher.py 更改为使用python3因为它按预期在python:3.8-slim-buster

作为解决此问题之前的解决方法,您可以在 Docker 扩展的资源中对launcher.py进行相同的更改。

窗户: %USERPROFILE%\.vscode\extensions\ms-azuretools.vscode-docker-1.3.1\resources\python\launcher.py
Mac/Linux: ~/.vscode/extensions/ms-azuretools.vscode-docker-1.3.1/resources/python/launcher.py

python3 17 行的dockerExecArgs python更改python3

或者,您可以复制该文件并在启动配置中使用debugLauncherPath属性,但这可能是_more_ 的工作。

我们已经发布了 Docker 1.4.0,其中包含对此的修复。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Justpro77 picture Justpro77  ·  3评论

chrisdias picture chrisdias  ·  7评论

revmischa picture revmischa  ·  6评论

afaddoul picture afaddoul  ·  7评论

Kludex picture Kludex  ·  7评论