PyCharm使用之配置SSH Interpreter

  在文章PyCharm使用之利用Docker镜像搭建Python开发环境中,该文章介绍了在PyCharm中如何利用Docker镜像搭建Python开发环境。在本文中,将会介绍如何使用PyCharm来配置SSH Interpreter,本文中的SSH Interpreter用Docker镜像来实现。
  演示项目的结构如下图所示:

项目截图

制作带SSH服务的Docker镜像

  首先,我们先制作带SSH服务的Docker镜像,里面含有Python开发环境,Dockerfile文件为python_env.build,内容如下:

FROM centos:7.2.1511 # author label LABEL maintainer="jclian" # install related packages ENV ENVIRONMENT DOCKER_PROD RUN cd / && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && yum makecache \ && yum install -y wget aclocal automake autoconf make gcc gcc-c++ python-devel mysql-devel bzip2 libffi-devel epel-release \ && yum clean all # install python 3.7.0 RUN wget https://npm.taobao.org/mirrors/python/3.7.0/Python-3.7.0.tar.xz \ && tar -xvf Python-3.7.0.tar.xz -C /usr/local/ \ && rm -rf Python-3.7.0.tar.xz \ && cd /usr/local/Python-3.7.0 \ && ./configure && make && make install # 创建src目录 COPY src /root/src WORKDIR /root/src # install related packages RUN pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt # expose port EXPOSE 15731 # install ssh RUN yum -y update; yum clean all RUN yum -y install openssh-server passwd; yum clean all ADD ./start.sh /start.sh RUN mkdir /var/run/sshd RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' RUN chmod 755 /start.sh RUN /start.sh ENTRYPOINT ["/usr/sbin/sshd", "-D"]

在这个CentOS系统中,我们配置了SSH服务,其中start.sh中含有账号名和密码,同时又配置了Python开发环境,start.sh文件的内容如下:

#!/bin/bash __create_user() { # Create a user to SSH into as. useradd user SSH_USERPASS=newpass echo -e "$SSH_USERPASS\n$SSH_USERPASS" | (passwd --stdin user) echo ssh user password: $SSH_USERPASS } # Call all functions __create_user

requirements.txt的内容如下:

tornado==5.1.1 jieba==0.39

安装的第三方模块为tornado和jieba。制作镜像的脚本为build.sh,内容如下:

#!/usr/bin/env bash TIMENOW=`date +%y.%m.%d.%H%M` # 进行docker镜像打包 docker build -f python_dev.build -t ssh_docker_python_dev:${TIMENOW} .

运行该镜像,生成的docker镜像为ssh_docker_python_dev:19.12.25.1346, 如下所示:

$ docker images | grep ssh_docker ssh_docker_python_dev 19.12.25.1346 cca5b78c199c 9 hours ago 988MB

到此,制作docker镜像完成。

测试镜像的SSH服务

  接着,我们在本地启动该docker镜像,命令如下:

$ docker run -d -p 49154:22 ssh_docker_python_dev:19.12.25.1346

接着输入:

$ ssh -p 49154 user@127.0.0.1

在接受凭证时选择yes,并输入密码“newpass”,就能顺利进入该容器内部了,尝试Python使用,如下:

$ ssh -p 49154 user@127.0.0.1 user@127.0.0.1's password: [user@4718f33bc470 ~]$ python3 Python 3.7.0 (default, Dec 24 2019, 23:58:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import jieba >>> list(jieba.cut("三亚的风景很不错")) Building prefix dict from the default dictionary ... Dumping model to file cache /tmp/jieba.cache Loading model cost 1.197 seconds. Prefix dict has been built succesfully. ['三亚', '的', '风景', '很', '不错'] 在PyCharm中配置SSH Interpreter

  在PyCharm的系统配置中,在“Project Interpreter”选择中可以看到右侧的“Project Inter”中没有interpreter,我们点击有变动的小齿轮,选择“Add”,如下图:

新增interpreter


在弹出来的界面中,我们选择interpreter的类型为“SSH Interpreter”,同时设置连接信息如下图:

SSH Interpreter配置

点击“Next”,输入密码“newpass”,再点击“Next”,选择Interpreter的路径为“/usr/local/Python-3.7.0/python”,如下图:

配置容器内的Python路径


需要注意的是,在这里我们能够看到本地项目路径对应于容器内的/tmp/pycharm_project_951路径,同时会把该项目中的文件自动上传至容器内对应的项目路径。最后点击“Finish”即可完成SSH Interpreter的配置。

测试SSH Interpreter

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzzydd.html