VS Code调试Docker内Python2.7应用时误调用Python3报错如何解决
解决方案
- 修改
launch.json指定容器内Python2.7解释器路径
在Docker调试配置的python节点下新增interpreterPath字段,指定容器内Python2.7的可执行文件路径。官方python:2.7.18镜像的默认路径为/usr/local/bin/python,你也可以进入容器执行which python确认实际路径。
修改后的launch.json对应片段:
{ "configurations": [ { "name": "Debug Account", "type": "docker", "request": "launch", "preLaunchTask": "docker-run: debug", "python": { "pathMappings": [ { "localRoot": "${workspaceFolder}", "remoteRoot": "/code" } ], "projectType": "general", "interpreterPath": "/usr/local/bin/python" } } ] }
- 修改
tasks.json补充解释器路径
在docker-run: debug任务的python节点下新增相同的interpreterPath配置,保证执行调试启动任务时调用正确的Python版本:
修改后的tasks.json对应片段:
{ "type": "docker-run", "label": "docker-run: debug", "dependsOn": ["docker-build"], "dockerRun": { // 原有配置保持不变 }, "python": { "args": ["--config=/code/config/account.conf.localstage"], "file": "skoobe-accountd", "interpreterPath": "/usr/local/bin/python" } }
- 安装兼容Python2.7的debugpy版本
最新版debugpy已停止支持Python2.7,需要在Dockerfile中指定安装兼容的版本,目前最后一个支持Python2.7的debugpy版本为1.5.1。修改完Dockerfile后需要重新构建镜像,确保debugpy安装到镜像中。
修改后的Dockerfile对应片段:
WORKDIR /code/ ADD requirements.txt /code/ RUN pip install -r requirements.txt && pip install debugpy==1.5.1
- 可选:同步本地Python解释器配置
如果你本地环境也安装了Python2.7,可以将settings.json中的python.pythonPath修改为本地Python2.7的实际路径,避免本地语法检查、依赖索引出现版本不兼容问题。
内容的提问来源于stack exchange,提问作者Super Hornet
相关产品推荐
相关产品推荐

