在文章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的类型为“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, traceback import jieba if __name__ == '__main__': sent = '最近这几天,我都在三亚上班,看着海开发的感觉还不错。' print(list(jieba.cut(sent)))
输出结果如下:
ssh://user@127.0.0.1:49154/usr/local/Python-3.7.0/python -u /tmp/pycharm_project_58/jieba_test.py Building prefix dict from the default dictionary ... Loading model from cache /tmp/jieba.cache Loading model cost 0.775 seconds. Prefix dict has been built succesfully. ['最近', '这', '几天', ',', '我', '都', '在', '三亚', '上班', ',', '看着', '海', '开发', '的', '感觉', '还', '不错', '。']
太好了,Docker容器内的Python开发环境是可以使用的。这时候,我们在进入Docker容器内去查看下,如下:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4718f33bc470 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 -l total 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.build drwxrwxr-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。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 明达年度发烧碟MasterSuperiorAudiophile2021[DSF]
- 英文DJ 《致命的温柔》24K德国HD金碟DTS 2CD[WAV+分轨][1.7G]
- 张学友1997《不老的传说》宝丽金首版 [WAV+CUE][971M]
- 张韶涵2024 《不负韶华》开盘母带[低速原抓WAV+CUE][1.1G]
- lol全球总决赛lcs三号种子是谁 S14全球总决赛lcs三号种子队伍介绍
- lol全球总决赛lck三号种子是谁 S14全球总决赛lck三号种子队伍
- 群星.2005-三里屯音乐之男孩女孩的情人节【太合麦田】【WAV+CUE】
- 崔健.2005-给你一点颜色【东西音乐】【WAV+CUE】
- 南台湾小姑娘.1998-心爱,等一下【大旗】【WAV+CUE】
- 【新世纪】群星-美丽人生(CestLaVie)(6CD)[WAV+CUE]
- ProteanQuartet-Tempusomniavincit(2024)[24-WAV]
- SirEdwardElgarconductsElgar[FLAC+CUE]
- 田震《20世纪中华歌坛名人百集珍藏版》[WAV+CUE][1G]
- BEYOND《大地》24K金蝶限量编号[低速原抓WAV+CUE][986M]
- 陈奕迅《准备中 SACD》[日本限量版] [WAV+CUE][1.2G]