如何在PyCharm Pro中通过oc rsh连接OpenShift容器运行远程Python?
用PyCharm Pro连接OpenShift容器运行远程Python的可行方案
由于不能在容器上配置SSH,只能依赖oc rsh,可以通过以下两种方案实现需求:
方案一:端口转发+文件实时同步+Debugpy调试
同步本地代码到容器
使用oc rsync把本地项目文件同步到容器内指定路径,加上--watch参数可实现实时同步,本地修改会自动同步到容器:oc rsync /你的本地项目路径 <目标Pod名称>:/容器内项目路径 oc rsync /你的本地项目路径 <目标Pod名称>:/容器内项目路径 --watch在容器内启动Debugpy服务
直接通过oc rsh启动Debugpy监听容器的所有IP,等待本地调试连接:oc rsh <目标Pod名称> python -m debugpy --listen 0.0.0.0:5678 --wait-for-client /容器内项目路径/你的脚本.py端口转发映射到本地
在本地执行端口转发,把容器的5678端口映射到本地同端口:oc port-forward <目标Pod名称> 5678:5678PyCharm配置调试服务器
- 打开
Run/Debug Configurations,新增Python Debug Server配置 - 设置本地端口为5678,在
Path mappings中把本地项目路径和容器内项目路径一一对应 - 启动调试,PyCharm就会连接到容器内的Debugpy进程,实现远程运行和调试
- 打开
方案二:自定义SSH包装脚本对接oc rsh
利用PyCharm的SSH解释器支持自定义执行脚本的特性,用oc rsh替代原生SSH连接:
编写包装脚本
创建oc-rsh-wrapper.sh脚本,内容如下(替换<目标Pod名称>为你的实际Pod名):#!/bin/bash oc rsh <目标Pod名称> "$@"给脚本添加执行权限:
chmod +x oc-rsh-wrapper.shPyCharm配置远程解释器
- 打开
File > Settings > Project: [你的项目名] > Python Interpreter - 点击右上角齿轮,选择
Add,然后选SSH Interpreter - 随便填Host(比如
localhost)、Port(22)、Username(任意值),无需填写密码 - 切换到
Advanced Options,在SSH executable中选择刚才创建的oc-rsh-wrapper.sh - 指定容器内的Python解释器路径(比如
/usr/bin/python3) - 配置
Path mappings,关联本地项目路径和容器内的项目路径
- 打开
完成配置后,PyCharm会通过包装脚本调用oc rsh执行远程命令,直接使用容器内的Python解释器运行代码。
注意事项
- 确保本地环境能正常调用
oc命令,PyCharm的终端环境也需要能访问到oc - 方案一中的
oc rsync需要OpenShift客户端版本支持,实时同步可避免手动重复同步代码 - 方案二中的包装脚本如果需要切换Pod,可以修改脚本让它支持动态传入Pod名称参数
内容的提问来源于stack exchange,提问作者tomkowy
相关产品推荐
相关产品推荐

