Pycharm远程调试及远程虚拟环境(包括Docker)

Pycharm远程调试及远程虚拟环境(包括Docker)

作者:Zarten
知乎专栏: Python爬虫深入详解
知乎ID: Zarten
简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !

概述

通常我们大部分人都是在windows环境下编程,但最后程序很可能跑在linux系统的远程服务器下,这样有时候在windows下可以很好的运行,但换到linux下后就各种问题出现。

那么可不可以直接在linux下编写及调试呢?当然可以,有些人喜欢直接在远程linux环境下编写,但这样还是不太方便。

pycharm提供了远程调试的功能,可以直接在windows下编程,但调试就在远程linux下,且代码自动同步到远程服务器,这一功能非常方便。

准备

注意:只有pycharm的专业版才有这个功能。

所以必须去 网站下载 专业版。


配置连接远程服务器

1.配置远程服务器信息

按顺序点击下方

选择左上角“+” “SFTP”

为远程服务器命名,为了区分不同的远程服务器

填写相应的服务器信息,然后点击“Autodetect”自动检测服务器的根目录

点击“Mappings”,对本地项目和远程服务器项目映射目录映射关系

点击“Excluded Paths”来添加一些不需要上传的文件,比如一些编译的中间件等

最后点击“OK”,远程服务器就配置完成了。


2.配置远程服务器的python环境

点击“File”-> “Settings”-> “Project Interpreter”来添加一个新的python环境

点击“Next”选择远程服务器中的python环境位置

前提是必须知道远程服务器python环境的具体位置,若不知道python解释器在什么地方,可以在服务器中使用如下命令查找:

whereis python3.6

which python3.6

并在“Sync folders”填写代码同步的目录

点击“Finish”后就可以了,若要在远程服务器额外安装库,可以在pycharm中直接搜索安装即可。


3.上传同步代码

可以自动上传或手动上传,根据自己需求设置即可


4.运行调试代码

此时编写在本机,但运行或调试就是在远程服务器了


远程虚拟环境配置

有时我们的pycharm远程调试时需要在远程服务器的虚拟环境下运行,这时就需要配置远程的虚拟环境了。

具体操作如下:

1.在远程服务器中安装virtualenv

pip3 install virtualenv


2.创建虚拟环境名称

virtualenv -p 复制的python版本路径 虚拟环境名称

-p 指定python的版本

virtualenv -p /usr/bin/python3.6 zarten_env


3.进入虚拟环境

进入虚拟环境目录下的bin目录下

cd bin

source activate

进入后可以查看安装的python库或进行安装

pip3 list


4.退出虚拟环境

deactivate


5.若不需要虚拟环境了,直接删除整个目录即可

rm -rf zarten_env


Pycharm配置远程服务器的虚拟环境

在远程服务器中虚拟环境安装完成后,就可以在pycharm中选择它,可以参考上面步骤,只是在第2步选择python解释器位置时有所不同


连接后也可以直接在pycharm中来搜索安装相应的库。


Pycharm远程连接Docker

1.启动要连接的docker容器

启动时使用 -p 宿主机端口:22

docker run -d -p 10022:22 -p 8000:8000 mytest 

启动后可使用下面命令查看宿主机映射的端口

docker port 容器名 22

2.进入容器内安装ssh服务

  • 进入容器
docker exec -it 容器名 /bin/bash
  • 安装ssh服务
apt-get update
apt-get install openssh-server

3.创建root用户密码

passwd

4.修改配置文件,运行root用户登录

  • 打开文件
vim /etc/ssh/sshd_config

若vim未安装,需安装

apt-get install vim
  • 修改文件

PermitRootLogin prohibit-passwd 改为 PermitRootLogin yes

并去掉注释


5.重启ssh服务

/etc/init.d/ssh restart

接下来就可以ssh连接docker容器了,此时端口不是22,而是映射到宿主设置的端口。


Pycharm远程连接到docker容器跟上面讲解的连接远程机器一样,这里不再讲解。

编辑于 2020-02-10 19:27

文章被以下专栏收录