pycharm远程调试方法

帅比萌擦擦* 提交于 2020-01-21 03:59:49

PyCharm远程调试(Remote Debugging with PyCharm)

前言

  宿主机:Win7,PyCharm 2018.3.1(Professional Edition)

  虚拟机:VirtualBox,Ubuntu 18.04.1 LTS,Anaconda 5.3.1,conda创建的Python 3.6虚拟环境selenium_3.6_demo

  目的:PyCharm使用selenium_3.6_demo的解释器调试Win7上的代码

 

一、Ubuntu配置ssh和sftp

  1、查询ssh版本。确保ssh的版本高于4.8p1,否则升级一下,一般都高于这个版本(搜索的网页都这么说的,至少Ubuntu 18.04.1 LTS是高于这个)。  

ssh -V

  2、查询openssh server是否已经安装

dpkg -l | grep openssh

  3、安装openssh-server

sudo apt install openssh-server

  4、创建用户组(sftp-users可以自己命名)

sudo groupadd sftp-users

  5、添加用户

复制代码
二选一:
1、添加一个admin的用户(可选,因为已经有一个用户了,所以没有创建新的)
sudo
useradd -g sftp-users -m admin
如果添加一个新的用户,可以修改密码
sudo passwd admin
2、将一个已经存在的用户aaa加入sftp-users组中(为什么用的已经存在的用户,因为一开始安装Ubuntu时建立了一个用户,anaconda和虚拟环境都装在这个用户目录下)
sudo usermod -a -G sftp-users aaa
复制代码

  6、创建代码存放目录

1 cd /home/aaa/
2 sudo mkdir upload

  7、配置权限(这一部分一脸懵逼,有不同意见的可以指教)

复制代码
 1 sudo vi /etc/sysctl.conf
 2 将注释#去掉
 3 net.ipv4.ip_forward=1
 4 
 5 sudo vi /etc/ssh/sshd_config
 6 将注释#去掉或者改成yes no
 7 AllowAgentForwarding yes
 8 AllowTcpForwarding yes
 9 GatewayPorts yes
10 X11Forwarding no
11 PermitTunnel yes
12 Subsystem       sftp    /usr/lib/openssh/sftp-server
13 
14 简单的vi命令
15 j:向下
16 k:向上
17 l:向右
18 h:向左
19 x:删除一个字符
20 i:进入编辑模式
21 Esc:退出编辑模式
22 :wq:按Esc后输入可以保存退出
复制代码

  配置权限这部分没有考虑安全性,一切只为了PyCharm能远程debug/run。

  8、重启

sudo reboot

  只重启ssh,我这里不好使。

  9、补充

    1、Win7和Ubuntu在一个局域网,都改静态IP。

    2、设置完了,可以用xshell验证一下。

      例如,Ubuntu的IP是192.168.1.100,输入:

ssh aaa@192.168.1.100

      然后在弹出的对话框中输入密码,如下提示表示连接成功。

aaa@aaa-VirtualBox:~$

      上面是ssh还要测试sftp

sftp caoyu@192.168.1.100

      然后在弹出的对话框中输入密码,如下提示表示连接成功。

sftp:/home/aaa>

    参考:https://my.oschina.net/sallency/blog/784022

 

二、PyCharm配置

  官方提供了两种方式:Creating a deployment configuration for a remote interpreter,Remote debugging with the Python remote debug server configuration

  方法一:Creating a deployment configuration for a remote interpreter

  1、打开Deployment配置页,菜单Tools | Deployment | Configuration...或者菜单File | Settings | Build, Execution, Deployment | Deployment 

  2、配置解释器,菜单File | Settings | Project: youre_project | Project Interpreter,先点击齿轮再点击“Add...”

  因为之前创建了Deployment,选Existing server configuration,第一次添加有两个选项,选择create就行了。

  设置解释器后,就可以Run/Debug了。

  方法一:Remote debugging with the Python remote debug server configuration

  1、菜单Run| Edit Configuration.... ,点击左上角“+”号,选择Python Remote Debug。IP填Win7的IP,端口大于10000且不冲突的。

  目录映射和之前添加解释器一样。

  2、添加依赖,在demo.py中添加如下代码。拷贝pycharm-debug-py3k.egg到项目seleniu_demo目录下,pycharm-debug-py3k.egg在PyCharm\debug-eggs目录下,Python2用没有py3k的那个。

1 import sys
2 sys.path.append("pycharm-debug-py3k.egg")
3 import pydevd
4 pydevd.settrace('192.168.1.2', port=22222, stdoutToServer=True, stderrToServer=True)

  3、上传文件。右键测试文件和pycharm-debug-py3k.egg,Deployment | Upload to aaa@192.168.1.100:22

  4、选择创建的Python Remote Debug

  5、出现如下打印表示连接成功。

  6、还没完,在Ubuntu运行如下代码。

python3 demo.py

  7、然后在PyCharm调试,PyCharm多了一行“Connected to pydev debugger (build 183.4588.64)”,这时候已经可以F8了。

  方法二有个麻烦的地方,每次都得去Ubuntu运行程序。

  参考:

  https://www.jetbrains.com/help/pycharm/remote-debugging-with-product.html#deploy-remote-host

  https://www.jetbrains.com/help/pycharm/configuring-remote-interpreters-via-ssh.html

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!