Vscode-docker: ¿Cómo se configura el iniciador de depuración para usar python3?

Creado en 2 jul. 2020  ·  4Comentarios  ·  Fuente: microsoft/vscode-docker

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

Este archivo tiene una sección de argumentos que se pasan a docker exec.

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

Mi depuración falla, porque el contenedor recibe python como python2.7, pero mi programa necesita python3, que está disponible en el contenedor. Si cambio este archivo launcher.py a python3, funciona. ¿Puedo pasar esto de alguna manera al lanzador?

Python Debug fix released

Todos 4 comentarios

@dwbelliston ¿Qué imagen base de Python estás usando? Me sorprende que haya algún lugar donde python asigne a Python2.7 ...

Aquí está el archivo dockerfile y launch.json.

La imagen base del archivo docker está aquí: 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"
      }
    }

¡Gracias! Parece que esa imagen de hecho usa 2.7 como predeterminado. Creo que podemos cambiar con seguridad launcher.py en nuestra extensión para usar python3 ya que eso funciona en python:3.8-slim-buster como se esperaba.

Como solución temporal antes de que podamos solucionarlo, puede realizar el mismo cambio en launcher.py en los recursos de la extensión Docker.

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

Cambie python a python3 en dockerExecArgs en la línea 17.

Alternativamente, puede hacer una copia de ese archivo y usar la propiedad debugLauncherPath en la configuración de lanzamiento, pero eso probablemente sea _más_ trabajo.

Hemos lanzado Docker 1.4.0 que contiene una solución para esto.

¿Fue útil esta página
0 / 5 - 0 calificaciones