PyCharm使用之配置SSH Interpreter的方法步驟
在文章PyCharm使用之利用Docker鏡像搭建Python開(kāi)發(fā)環(huán)境中,該文章介紹了在PyCharm中如何利用Docker鏡像搭建Python開(kāi)發(fā)環(huán)境。在本文中,將會(huì)介紹如何使用PyCharm來(lái)配置SSH Interpreter,本文中的SSH Interpreter用Docker鏡像來(lái)實(shí)現(xiàn)。
演示項(xiàng)目的結(jié)構(gòu)如下圖所示:

制作帶SSH服務(wù)的Docker鏡像
首先,我們先制作帶SSH服務(wù)的Docker鏡像,里面含有Python開(kāi)發(fā)環(huán)境,Dockerfile文件為python_env.build,內(nèi)容如下:
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 # 創(chuàng)建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"]
在這個(gè)CentOS系統(tǒng)中,我們配置了SSH服務(wù),其中start.sh中含有賬號(hào)名和密碼,同時(shí)又配置了Python開(kāi)發(fā)環(huán)境,start.sh文件的內(nèi)容如下:
#!/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的內(nèi)容如下:
tornado==5.1.1 jieba==0.39
安裝的第三方模塊為tornado和jieba。制作鏡像的腳本為build.sh,內(nèi)容如下:
#!/usr/bin/env bash
TIMENOW=`date +%y.%m.%d.%H%M`
# 進(jìn)行docker鏡像打包
docker build -f python_dev.build -t ssh_docker_python_dev:${TIMENOW} .
運(yùn)行該鏡像,生成的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鏡像完成。
測(cè)試鏡像的SSH服務(wù)
接著,我們?cè)诒镜貑?dòng)該docker鏡像,命令如下:
$ docker run -d -p 49154:22 ssh_docker_python_dev:19.12.25.1346
接著輸入:
$ ssh -p 49154 user@127.0.0.1
在接受憑證時(shí)選擇yes,并輸入密碼“newpass”,就能順利進(jìn)入該容器內(nèi)部了,嘗試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("三亞的風(fēng)景很不錯(cuò)"))
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.
['三亞', '的', '風(fēng)景', '很', '不錯(cuò)']
在PyCharm中配置SSH Interpreter
在PyCharm的系統(tǒng)配置中,在“Project Interpreter”選擇中可以看到右側(cè)的“Project Inter”中沒(méi)有interpreter,我們點(diǎn)擊有變動(dòng)的小齒輪,選擇“Add”,如下圖:

在彈出來(lái)的界面中,我們選擇interpreter的類型為“SSH Interpreter”,同時(shí)設(shè)置連接信息如下圖:

點(diǎn)擊“Next”,輸入密碼“newpass”,再點(diǎn)擊“Next”,選擇Interpreter的路徑為“/usr/local/Python-3.7.0/python”,如下圖:

需要注意的是,在這里我們能夠看到本地項(xiàng)目路徑對(duì)應(yīng)于容器內(nèi)的/tmp/pycharm_project_951路徑,同時(shí)會(huì)把該項(xiàng)目中的文件自動(dòng)上傳至容器內(nèi)對(duì)應(yīng)的項(xiàng)目路徑。最后點(diǎn)擊“Finish”即可完成SSH Interpreter的配置。
測(cè)試SSH Interpreter
配置好Python環(huán)境后,我們用jieba_test.py作為測(cè)試文件,來(lái)驗(yàn)證Python環(huán)境是否配置好。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 = '最近這幾天,我都在三亞上班,看著海開(kāi)發(fā)的感覺(jué)還不錯(cuò)。' print(list(jieba.cut(sent)))
輸出結(jié)果如下:
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. ['最近', '這', '幾天', ',', '我', '都', '在', '三亞', '上班', ',', '看著', '海', '開(kāi)發(fā)', '的', '感覺(jué)', '還', '不錯(cuò)', '。']
太好了,Docker容器內(nèi)的Python開(kāi)發(fā)環(huán)境是可以使用的。這時(shí)候,我們?cè)谶M(jìn)入Docker容器內(nèi)去查看下,如下:
$ 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路徑下確實(shí)包含了本地項(xiàng)目的所有文件。
關(guān)于如何制作帶SSH服務(wù)和Python開(kāi)發(fā)環(huán)境的Docker鏡像以及如何在PyCharm中配置SSH Interpreter的講述到此結(jié)束,感謝大家的閱讀~
該演示項(xiàng)目已上傳至Github,網(wǎng)址為:https://github.com/percent4/Python_docker。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- PyCharm 安裝與使用配置教程(windows,mac通用)
- pycharm2020.2 配置使用的方法詳解
- PyCharm2020.1.2社區(qū)版安裝,配置及使用教程詳解(Windows)
- mac 上配置Pycharm連接遠(yuǎn)程服務(wù)器并實(shí)現(xiàn)使用遠(yuǎn)程服務(wù)器Python解釋器的方法
- Linux下Pycharm、Anaconda環(huán)境配置及使用踩坑
- 使用PyCharm創(chuàng)建Django項(xiàng)目及基本配置詳解
- 使用PyCharm配合部署Python的Django框架的配置紀(jì)實(shí)
- 如何使用PyCharm及常用配置詳解
相關(guān)文章
詳解python?sklearn中的數(shù)據(jù)預(yù)處理方法
本篇文章主要講解Python的sklearn庫(kù)中常用的數(shù)據(jù)預(yù)處理方法,主要介紹工具中的內(nèi)容,即該庫(kù)中的相關(guān)方法包含的常用接口和基本使用,希望對(duì)大家有所幫助2023-08-08
Python文件遍歷os.walk()與os.listdir()使用及說(shuō)明
這篇文章主要介紹了Python文件遍歷os.walk()與os.listdir()使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
Python數(shù)據(jù)可視化:箱線圖多種庫(kù)畫(huà)法
這篇文章主要介紹了Python數(shù)據(jù)可視化箱線圖多種庫(kù)畫(huà)法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果
這篇文章主要介紹了python實(shí)現(xiàn)封裝得到virustotal掃描結(jié)果的方法,是比較實(shí)用的技巧,可將掃描結(jié)果寫(xiě)入數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-10-10
Python getopt模塊處理命令行選項(xiàng)實(shí)例
這篇文章主要介紹了Python getopt模塊處理命令行選項(xiàng)實(shí)例,本文講解相對(duì)簡(jiǎn)單,需要的朋友可以參考下2014-05-05
Python爬蟲(chóng) 批量爬取下載抖音視頻代碼實(shí)例
這篇文章主要介紹了Python爬蟲(chóng) 批量爬取下載抖音視頻代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Pandas實(shí)現(xiàn)dataframe和np.array的相互轉(zhuǎn)換
今天小編就為大家分享一篇Pandas實(shí)現(xiàn)dataframe和np.array的相互轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
Django基于ORM操作數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了Django基于ORM操作數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式總結(jié)分析了Django使用ORM操作數(shù)據(jù)庫(kù)的相關(guān)配置、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03

