1. 需求
在Python开发中经常会碰到一些棘手的环境问题,例如:如果开发环境是windows,那么在开发ansible模块的时候,而ansible模块又一般都是安装在linux系统,这时候在windows开发就不好处理了。
此时,可以考虑连接Docker镜像,而Docker镜像可以采用Centos作为Base Image,这样就可以顺利安装上ansible,然后使用Pycharm连接该Docker镜像来作为开发环境即可。
而不管是windows还是linux,都是可以支持安装Docker的。
2. 准备工具
- PyCharm专业版
- Docker
我的工作PC系统是WIN10,准备的Docker是安装在vmware虚拟机的Centos7环境。
3. 实现原理
Pycharm的工具是具有通过SSH协议远程访问一个环境作为开发环境的功能的。那么只要创建一个支持SSH远程访问的容器,那么就可以提供作为开发环境了。
需要做的基本步骤:
- 构建一个支持SSH服务的镜像 centos:7-ssh
- 构建基于支持SSH服务,支持执行python3环境的镜像 python_env
- 配置Pycharm的调试环境使用SSH连接上python_env
- 配置Pycharm自动同步项目的代码文件至python_env容器中,用于调试代码
4.构建一个支持SSH服务的镜像 centos:7-ssh
这个步骤就不在这里编写了,可以查阅我的另一篇文章Docker使用Centos镜像构建使用Openssh
该具有SSH功能的基础镜像命名为: centos:7-ssh
测试ssh访问如下:
5.构建基于支持SSH服务,支持执行python3环境的镜像 python_env
有了支持SSH服务的基础镜像centos:7-ssh
之后,那么可以在这个镜像的基础上,构建python3的执行环境,提供用于远程环境调试。
5.1 编写Dockerfile
5.2 执行构建
5.3 运行python_env ,启动容器的ssh服务
5.4 进入容器,可以查看稍后同步的代码文件,以及在容器内执行代码
6. 配置Pycharm的调试环境使用SSH连接上python_env
6.1 选择菜单栏的File > Setting > Project Interpreter > Add , 添加调试环境
6.2 配置添加SSH调试环境
6.3 配置添加SSH调试环境中使用的python3路径
首先在容器中查看一下python3的执行文件路径:
在SSH调试环境中设置python3的执行文件路径,如下:
image-20200416173405489
6.4 配置添加SSH调试环境中同步项目文件的路径,也就是拷贝文件的目标地址
6.5 配置完毕SSH调试环境的信息
6.6 配置完毕,自动上传项目目录下的文件至服务器
你会发现设置的本地文件全部都会上传到容器中,如下:
但是对于venv这个虚拟环境的文件,应该是要排除上传的,下面来配置一下。
6.7 配置排除SSH上传一些特定的文件
选中OK之后,这些路径就不会自动同步到服务器上了。
6.8 执行python脚本,查看调试信息
创建一个python脚本,点击执行,那么pycharm则会发出一条ssh的命令,将远程执行的信息同步回来展示。
7. Pycharm远程执行的相关问题
7.1 脚本自动上传不及时
我已经将脚本的打印信息修改,但是由于脚本没有上传至容器中,导致还是打印之前的信息。
这时候还是手动上传比较靠谱,如下:
这样就可以保证肯定上传成功了。但是这样还是让人体验很不爽。
7.2 检查SSH传输的配置
这里提示没有配置默认的服务器组。
问题的原因:我只配置了一个SSH镜像作为开发调试环境,但是却在配置发现有三个连接配置,顺手删除了2个,难道就是因为这个问题。
为了排查这个问题,我觉得全部删除一遍,重新配置一下。
重新配置一遍调试环境,步骤与文档的上方一致。
重新配置一遍就可以解决问题了,真的是我手贱删除了SSH传输的连接。
微信公众号: