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容器跟上面讲解的连接远程机器一样,这里不再讲解。