Vscode-docker: python3を使用するようにdebugpyランチャーをどのように設定しますか?

作成日 2020年07月02日  ·  4コメント  ·  ソース: microsoft/vscode-docker

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

このファイルには、dockerexecに渡される引数のセクションがあります。

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

コンテナがpython2.7としてpythonを受け取るため、デバッグは失敗しますが、プログラムには、コンテナで使用可能な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"]

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を使用しているようです。 python:3.8-slim-busterで期待どおりに機能するため、拡張機能のlauncher.pyをpython3を使用するように安全に変更できると思います。

これを修正する前の回避策として、Docker拡張機能のリソースのlauncher.pyに同じ変更を加えることができます。

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

17行目のdockerExecArgspythonpython3します。

または、そのファイルのコピーを作成して、起動構成でdebugLauncherPathプロパティを使用することもできますが、それはおそらく_more_作業です。

これに対する修正を含むDocker1.4.0をリリースしました。

このページは役に立ちましたか?
0 / 5 - 0 評価