Pycharm
远程调试配置
背景
使用Pycharm
来作为python
开发的IDE
是很好的选择,使用起来特别方便。但是 在windows
上python
有时候环境搭建笔记麻烦,当然我们可以选择直接安装anaconda
,然后需要使用到什么库,我们就安装哪些库。这样就可以在本地进行开发调试。不过这个并非是最佳的选择。
对于windows
上,主要用来编写文档,查看编辑代码,而对于开发环境,一般都会部署到docker
的linux
环境中,然后通过远程进行调试开发。最常见的就是使用ssh
远程连接过去,这样就可以不需在windows
上安装过多的依赖库。
下面就记录一下,Pycharm
如何配置远程调试,这里以ssh
为例,其他方式也都类似。
步骤
进入到
docker
(映射8022端口到22端口)docker run -it -d --name=ubuntu_python -v /home/wkang/code:/Code -v /tmp/share:/tmp/share -p 9490:9090 -p 19490:19090 -p 8022:22 --privileged=true ubuntu18.04-caffe:latest bash
这里就是正常的启动
docker
镜像,-v
是把主机的目录映射到镜像内的目录,-p
是把主机的端口映射到镜像内的端口,这里主要是把22
端口映射出来,因为ssh
连接的默认端口就是22
查看8022到22端口是否映射成功:
docker port ubuntu_pyton 22
安装
openssh-server
apt update apt-get install openssh-server
设置
openssh
允许root
用户登录(不想用
root
的,可以不需要设置,我是偷懒,用root
比较方便,当然也不安全。)passwd 【首先设置root账号密码】 【输入需要设置的root密码,我这里设置为: root】 sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 【运行root用户登录,替换PermitRootLogin 为 yes】 sed -i '/PermitRootLogin yes/s^#//' /etc/ssh/sshd_config 【如果有注释符`#`删除】 sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd 【修改ssh安全限制,取消pam限制】 service ssh restart 【重启ssh服务】
测试是否可以连接上
netstat -l ssh -p 8022 root@10.1.1.205 sftp -P 8022 root@10.1.1.205
特殊情况
在使用镜像
tensorflow-gpu
出现的该问题发现
ssh
可以连接上,但是sftp
连接上即会报错Received message is too long: 458961206
, 主要是.bash_profile
和.bashrc
输出太多,解决办法# 找到输出源 /etc/bash.bashrc mv bash.bashrc bash.bashrc.bak