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に変更すると、機能します。 これをなんとかしてランチャーに渡すことはできますか?
@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行目のdockerExecArgs
でpython
をpython3
します。
または、そのファイルのコピーを作成して、起動構成でdebugLauncherPath
プロパティを使用することもできますが、それはおそらく_more_作業です。
これに対する修正を含むDocker1.4.0をリリースしました。