我使用的是 PyCharm 专业版进行的操作,社区版也许会略有不同。主要思路是 ssh 连接到容器内然后设置远程解释器,理论上能在任何支持远程解释器的编辑器内使用。
来自两年后的我:对于本地的 Docker 服务,应当直接将目录映射出来,然后单独使用镜像环境去做索引和自动补全,这样比用 SSH 方便的多。
不过,对于一些特殊情况——比如给 Codex 一个干净隔离的环境让它做开发乱霍霍,这个时候 SSH 到容器内是很合适的。可以参考文末的 SSH 设置流程。
接下来我来阐述正确方法:
Docker 容器配置
首先,在创建容器时将你的工作区映射到本地,例如:
docker run -it -v "$PWD":/workspace pytorch/pytorch
以防你不清楚,这条命令将当前路径$PWD与容器中/workspace建立映射。
PyCharm 配置
打开 Python 解释器设置,选择添加解释器 → 基于 Docker...
如果你使用的是现有镜像,就像我这样输入镜像标记,这里用的是 PyTorch 的官方镜像:
等待 PyCharm 重新拉取一遍镜像:
拉取完成后,可以看到 PyCharm 已经自动检测出了容器内的 Python 版本,选择你需要的那个继续就可以了:
如你所见,现在 PyCharm 检测出了容器内的所有依赖,可以进行自动补全了。
更新自 2026/2/28,使用 PyCharm 2025.3.2.1
以前写的用 SSH 的方法折叠在这里了
Docker 容器配置
首先需要创建一个 Docker 容器(如果没有的话)并将其 ssh 端口映射到本地,例如:
docker run -p 1022:22 -it python /bin/bash
这里将容器内的22端口映射到了本地的1022端口。1022可替换为任意本地端口(只要没有冲突)
容器内 ssh 配置
进入容器后安装 OpenSSH Server
apt update
apt install openssh-server
设置登录密码,我这里直接使用root登录,也可以使用其他账户
passwd root
OpenSSH Server 默认阻止 root 密码登录,需要修改配置文件,进入:
vim /etc/ssh/sshd_config
提示:部分镜像内可能没有安装vim,请通过apt install vim安装
将sshd_config中的PermitRootLogin取消注释并改为:
PermitRootLogin yes
重启 ssh 服务
service ssh restart
至此容器内的 ssh 服务就配置完成了,在主机上测试 ssh 连接
ssh -p 1022 root@localhost
能顺利登录即为成功
PyCharm 配置
打开项目设置 → Python 解释器
添加解释器 → SSH...
按照之前配置的端口和用户名输入,再输入密码,PyCharm 会自动进行连接。
在运行时配置中选择系统解释器,将路径指向容器内 python 安装目录即可。
至此,配置已经完成,在解释器设置内选择刚配置完成的 Remote Python 即可。