Vscode-docker: Как настроить средство запуска отладки для использования python3?

Созданный на 2 июл. 2020  ·  4Комментарии  ·  Источник: microsoft/vscode-docker

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

В этом файле есть раздел с аргументами, которые передаются в 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.

Базовый образ из файла докера находится здесь: https://hub.docker.com/r/google/cloud-sdk/dockerfile

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"]

launch.json

    {
      "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 как и ожидалось.

В качестве обходного пути, прежде чем мы сможем это исправить, вы можете внести то же изменение в launcher.py в ресурсах расширения Docker.

Windows: %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

Измените python на python3 в dockerExecArgs в строке 17.

В качестве альтернативы вы можете сделать копию этого файла и использовать свойство debugLauncherPath в конфигурации запуска, но это, вероятно, _more_ сработает.

Мы выпустили Docker 1.4.0, в котором есть исправление.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги