Vscode-docker: Wie stellen Sie den Debugpy-Launcher ein, um Python3 zu verwenden?

Erstellt am 2. Juli 2020  ·  4Kommentare  ·  Quelle: microsoft/vscode-docker

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

Diese Datei enthält einen Abschnitt mit Argumenten, die an docker exec übergeben werden.

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

Mein Debug schlägt fehl, weil der Container python als python2.7 empfängt, aber mein Programm benötigt python3, das im Container verfügbar ist. Wenn ich diese launcher.py-Datei in python3 ändere, funktioniert es. Kann ich das irgendwie an den Launcher übergeben?

Python Debug fix released

Alle 4 Kommentare

@dwbelliston Welches Python- python Python2.7 zuordnet...

Hier ist das Dockerfile und launch.json.

Das Basis-Image aus der Docker-Datei ist hier: https://hub.docker.com/r/google/cloud-sdk/dockerfile

Docker-Datei:

# 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"
      }
    }

Danke! Es sieht so aus, als ob dieses Bild tatsächlich 2.7 als Standard verwendet. Ich denke, wir können launcher.py in unserer Erweiterung sicher ändern, um python3 da dies wie erwartet auf python:3.8-slim-buster funktioniert.

Als Workaround, bevor wir das beheben können, können Sie die gleiche Änderung an launcher.py in den Ressourcen der Docker-Erweiterung vornehmen.

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

Ändern Sie python in python3 in dockerExecArgs in Zeile 17.

Alternativ könnten Sie eine Kopie dieser Datei erstellen und die Eigenschaft debugLauncherPath in der Startkonfiguration verwenden, aber das ist wahrscheinlich _mehr_ Arbeit.

Wir haben Docker 1.4.0 veröffentlicht, das einen Fix dafür enthält.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen