Windows PyCharm对接Linux Docker运行代码报No such file or directory错误
问题根因及排查解决方案
1. 优先核对PyCharm临时容器的挂载规则
PyCharm使用Docker解释器运行代码时,默认会每次启动全新的临时容器,而非复用你手动启动、已经做好挂载的现有容器。如果你的挂载配置写在docker-compose.yml中,但创建解释器时选择的是「Docker Image」而非「Docker Compose」类型,PyCharm启动临时容器时不会自动加载compose中的volume配置,就会出现手动进容器能找到文件、PyCharm启动的容器找不到的问题。
解决方法:
- 重新创建Docker解释器,类型选择「Docker Compose」,指定你的项目compose文件,PyCharm会自动读取compose中的挂载、端口等配置。
- 如果你坚持用纯Docker镜像类型的解释器,需要在解释器配置的「Path Mappings」中明确添加完整的本地-容器路径映射,不要依赖compose的配置。
2. 清理冲突的路径映射规则
PyCharm的路径映射有三层优先级:Run/Debug配置单独映射 > 解释器配置映射 > 项目全局部署映射,如果三层配置不一致会出现路径转换错误。
解决方法:
- 删掉Run/Debug配置中单独设置的Path Mappings,让它直接继承解释器的映射配置
- 解释器的Path Mappings仅保留一条规则:本地路径填Windows下的项目根目录(如
C:\Users\yourname\projects\test_proj),远程路径填容器内的项目根目录(如/app),不要添加其他冗余映射条目。
3. 简化Run配置的路径参数
避免PyCharm做多余的路径转换:
- Script path不要填Windows本地绝对路径,改为填写相对于项目根目录的相对路径(如脚本在根目录直接填
hello_w.py,在子目录就填subdir/hello_w.py) - Working directory严格填写容器内的项目根目录绝对路径(如
/app)
4. 验证容器启动参数
运行代码时查看控制台最顶部输出的完整docker run命令,检查其中的-v挂载参数是否符合预期,确认本地目录是否被正确挂载到了你指定的容器路径。如果挂载路径和预期不符,回到解释器配置调整映射规则即可。
内容的提问来源于stack exchange,提问作者rRr
相关产品推荐
相关产品推荐

