如何使用VSCode运行WSL2环境下Docker容器内的Python代码
实现方案
完全可以实现需求,下面提供两种常用适配方案:
方案1:使用Dev Containers插件(推荐,支持Ctrl+F5运行+调试)
这是VSCode官方适配容器开发的方案,配置后原生支持快捷键运行、断点调试等功能
- 前置准备:VSCode已安装
WSL、Dev Containers插件,WSL2内Docker服务正常运行且已开启WSL2集成 - 操作步骤:
- 打开VSCode,点击左下角远程连接按钮,选择「Connect to WSL」进入你的Ubuntu环境,打开存放Python代码的目标文件夹
- 在文件夹根目录新建
.devcontainer文件夹,在文件夹内创建devcontainer.json配置文件,参考配置如下(可根据你实际使用的镜像调整):
{ "name": "Python容器开发环境", "image": "python:3.11-slim", // 此处替换为你实际使用的Docker镜像名 "customizations": { "vscode": { "extensions": ["ms-python.python"] } } }
如果你的项目已有自定义Dockerfile或docker-compose.yml,可调整配置字段指向本地的构建文件即可
3. 按Ctrl+Shift+P唤起命令面板,选择「Dev Containers: Reopen in Container」,等待VSCode自动连接到容器内完成环境加载
4. 加载完成后,所有VSCode操作的运行环境都默认在目标Docker容器内,直接按Ctrl+F5即可运行代码,也支持断点调试功能
方案2:修改CodeRunner配置(仅需运行无需调试时可选)
如果你不想调整开发环境连接方式,只想用CodeRunner插件直接运行,可以直接修改CodeRunner的执行命令指向容器内的Python解释器
- 前置准备:目标Docker容器已处于运行状态,本地代码目录已经挂载到容器内的指定路径(例如容器内路径为
/workspace,容器名为py-dev) - 操作步骤:
- 打开VSCode设置,搜索
Code Runner: Executor Map,点击「在settings.json中编辑」 - 找到配置项内的
python字段,将其值修改为:"python": "docker exec -i py-dev python3 /workspace/$fileName"
注意将上述命令中的py-dev替换为你实际的容器名,/workspace替换为你本地代码目录在容器内的挂载路径 - 保存配置后,再使用CodeRunner的运行按钮或对应快捷键,就会自动调用容器内的Python解释器执行当前代码
注意:方案2仅支持直接运行代码,不支持断点调试,有调试需求优先选择方案1
内容的提问来源于stack exchange,提问作者N0Name
相关产品推荐
相关产品推荐

