侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PyCharm使用之配置SSH Interpreter的方法步骤

Python  /  管理员 发布于 5年前   360

在文章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 labelLABEL maintainer="jclian"# install related packagesENV ENVIRONMENT DOCKER_PRODRUN 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.0RUN 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/srcWORKDIR /root/src# install related packagesRUN pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt# expose portEXPOSE 15731# install sshRUN yum -y update; yum clean allRUN yum -y install openssh-server passwd; yum clean allADD ./start.sh /start.shRUN mkdir /var/run/sshdRUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''RUN chmod 755 /start.shRUN /start.shENTRYPOINT ["/usr/sbin/sshd", "-D"]

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

#!/bin/bash__create_user() {# Create a user to SSH into as.useradd userSSH_USERPASS=newpassecho -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.1jieba==0.39

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

#!/usr/bin/env bashTIMENOW=`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_dockerssh_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 [email protected]

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

$ ssh -p 49154 [email protected]@127.0.0.1's password:[user@4718f33bc470 ~]$ python3Python 3.7.0 (default, Dec 24 2019, 23:58:12)[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "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.cacheLoading model cost 1.197 seconds.Prefix dict has been built succesfully.['三亚', '的', '风景', '很', '不错']

在PyCharm中配置SSH Interpreter

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


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

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


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

测试SSH Interpreter

配置好Python环境后,我们用jieba_test.py作为测试文件,来验证Python环境是否配置好。jieba_test.py的代码如下:

# -*- coding: utf-8 -*-# author: Jclian91# place: Pudong Shanghai# time: 2:09 下午import os, re, json, tracebackimport jiebaif __name__ == '__main__':  sent = '最近这几天,我都在三亚上班,看着海开发的感觉还不错。'  print(list(jieba.cut(sent)))

输出结果如下:

ssh://[email protected]:49154/usr/local/Python-3.7.0/python -u /tmp/pycharm_project_58/jieba_test.pyBuilding prefix dict from the default dictionary ...Loading model from cache /tmp/jieba.cacheLoading model cost 0.775 seconds.Prefix dict has been built succesfully.['最近', '这', '几天', ',', '我', '都', '在', '三亚', '上班', ',', '看着', '海', '开发', '的', '感觉', '还', '不错', '。']

太好了,Docker容器内的Python开发环境是可以使用的。这时候,我们在进入Docker容器内去查看下,如下:

$ docker psCONTAINER ID    IMAGE     COMMAND        CREATED       STATUS       PORTS   NAMES4718f33bc470    ssh_docker_python_dev:19.12.25.1346  "/usr/sbin/sshd -D"  20 minutes ago   Up 20 minutes    15731/tcp, 0.0.0.0:49154->22/tcp  brave_nobel$ docker exec -it 4718f33bc470 bash[root@4718f33bc470 src]# cd /tmp/pycharm_project_58/[root@4718f33bc470 pycharm_project_58]# ls -ltotal 24-rw-rw-r-- 1 user user 960 Dec 25 14:12 README.md-rw-rw-r-- 1 user user 150 Dec 25 13:21 build.sh-rw-rw-r-- 1 user user 284 Dec 25 14:10 jieba_test.py-rw-rw-r-- 1 user user 1100 Dec 25 13:46 python_dev.builddrwxrwxr-x 2 user user 4096 Dec 25 22:48 src-rw-rw-r-- 1 user user 235 Dec 25 13:21 start.sh[root@4718f33bc470 pycharm_project_58]#

可以看到,容器中的/tmp/pycharm_project_58路径下确实包含了本地项目的所有文件。

关于如何制作带SSH服务和Python开发环境的Docker镜像以及如何在PyCharm中配置SSH Interpreter的讲述到此结束,感谢大家的阅读~

该演示项目已上传至Github,网址为:https://github.com/percent4/Python_docker。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    基于h5py的使用及数据封装代码
    下一条:
    Numpy之reshape()使用详解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客