Python-WingIde各种调试方法

一、  本地从IDE启动文件调试

Python-WingIde各种调试方法_第1张图片

主要步骤:设置断点,F5开始调试

二、  本地从IDE外启动文件调试

1.) 从WingIDE的安装目录(默认C:\Program Files (x86)\Wing IDE 6.0)复制wingdbstub.py到被调试代码所在目录

2.) 代码中添加importwingdbstub

3.) IDE左下角设置如图

Python-WingIde各种调试方法_第2张图片

4.) 在IDE中打开代码,必需;按需设置断点。

5.) 在IDE外通过python启动代码,这样就可以在IDE内调试了,注意观察左下角的debug状态。

三、  从windows本地IDE启动远程Linux文件进行调试

1)  因为WingIDE调用putty和plink进行ssh连接,需要先设置putty。

点击下载putty,并解压,把解压路径附到操作系统PATH环境变量中,之后重新启动WingIDE,让它重新读取环境变量。

2)  设置Linux主机的密钥访问。如果已经做好了则跳过这一步。

在Linux主机执行ssh-keygen 一路按Enter

添加公钥到要访问的远程机器:

cd ~/.ssh

cat id_rsa.pub >>authorized_keys

复制.ssh文件夹下的私钥id_rsa到本地。

3)  转换密钥格式为putty格式。

Win按键+R,输入PUTTYGEN执行。点击“load”,选择刚复制下来的私钥文件(从文件名后的下拉框选择All files),然后“save private key”。

保存的文件在下一步用到。

4)  Win按键+R,输入putty 执行,并分别设置以下选项。

Session:主机ip,端口

Connection:用户名

Connection—SSH-Auth:选择Private key为上一步保存的文件。

Session:在Saved Sessions中填个名字并“Save”.

点击Open,如果提示信任主机key,点击“是”。此时各项正确的话应当能登入远程机器,确认正常后关掉putty。

5)  创建工程,工程文件来自远程计算机。

Project-new project,从下拉列表选择有ssh的一项。

Python-WingIde各种调试方法_第3张图片

Identifier:IDE自己内部的唯一名称,随便起。

Host Name上一步putty保存的名称,一模一样

WINGHOME: wingide的安装目录,若已安装则指定为已安装的目录;否则就是步骤6要自动安装到的目录。

Python 程序:不选择的话wingide从linux 的path中去找python。如果没有安装wingide,也不能选择,可以在安装wingide agent后再修改。

点击“ok

6)  继续

Python-WingIde各种调试方法_第4张图片

也可以事先在Linux主机上装一个Linux版的WingIDE,上一步的winghome就是安装目录,并且也可以直接选择python程序路径。第四章的方法就需要装完整版。

Python-WingIde各种调试方法_第5张图片

7)  添加远程文件(或者文件夹)到项目,添加完之后就可以像本地调试一样了。

Python-WingIde各种调试方法_第6张图片

8)  由于Linux一般默认是python2,而在步骤5并没有选择python3.所以若使用python3,应当在项目属性中重新指定。

Python-WingIde各种调试方法_第7张图片

9)  需要设置项目属性中的文件编码和换行方式。

Python-WingIde各种调试方法_第8张图片

10)  在IDE中设置断点并运行。看效果。

 

11)  Python shell这个工具栏,在它的菜单中点击restart后,启动的是远程的python。

Python-WingIde各种调试方法_第9张图片

四、  远程启动Linux文件,从Windows本地IDE调试

1.  Linux上安装WingIDE

需要在远程主机上装Linux版本的WingIDE pro。建议下载tar包格式的,可以从安装过程了解其结构,安装的wingide主要是提供调试组件。

2.  要进行调试,远程和本地都要有同一份代码才可以,还要保持同步。

一个简单的方法是建立共享,然后在windows映射网络驱动器。

使用samba在Linux建立共享:

sudo apt-get installsamba

sudo smbpasswd –a sk   sk是用户名,应当是已经存在的一个系统用户名

sudo vim /etc/samba/smb.conf 最后添加

[sharecode]

path = /home/sk/code

   read only = no

启动samba服务器 的服务,命令systemctl start samba或者类似。

在windows中访问\\172.18.60.220 输入用户名密码并记住密码。

设置映射网络驱动器。

Python-WingIde各种调试方法_第10张图片

在wingide里设置映射,Linux目录的实际地址和windows映射的对应关系。例如:

Linux下/home/sk/code通过samba共享后路径是 \\172.18.60.220\sharecode,windows下把\\172.18.60.220\sharecode映射为Z

映射关系则是 /home/sk/code  对应 Z:/  ;注意路径中都是/ ,而不是\

windows上的wingide设置:

Python-WingIde各种调试方法_第11张图片

3.     添加要调试的远程主机到允许列表,远程主机会连接本机WingIDE的5005端口。

设置windows的防火墙的允许规则,或者直接关掉防火墙。

Python-WingIde各种调试方法_第12张图片

4.  将Linux中WingIDE安装目录下wingdbstub.py复制到被调代码所在目录(注意不是复制windows版的)

代码添加importwingdbstub(前面已经建立映射,可以直接在win下编辑,但要注意编码和换行)。

修改wingdbstub.py中的kWingHostPort = 'localhost:50005' 为本地windows主机IP和本地WingIDE的监听端口(默认是50005)。

Wingdbstub.py的注释比较详细,具体含义大家自己看。

5.  把本地windows的"C:\Users\用户名\AppData\Roaming\Wing IDE 6\ " wingdebugpw文件复制到远程代码所在目录,与wingdbstub.py在一个目录。

这个文件是密码文件,WingIDE为了安全性而搞的,必需。

6.  WingIDE左下角设置,开启监听端口。

Python-WingIde各种调试方法_第13张图片

7.  用WingIDE打开本地映射的远程py并设置断点。

远程启动py文件(别忘了第4步的import wingdbstub)即可调试。

实际上第二章就是这种用法的特例。

五、  附加进程调试

比如第四部分,启动了远程调试代码但忘了启动IDE,或者中间退出了IDE~~怎么办?

1.  前提就是被调试代码需要 import wingdbstub

2.  远程调试需要按照第四章第4节创建好映射,本地代码就不需要了。

3.  打开被调试代码(包括上面说的各种方式,都要先准备好代码);设置断点。

4.  在attach to process的对话框中输入被调试代码的侦听端口。

Python-WingIde各种调试方法_第14张图片

还有很重要的一点,在点击attach的时候,被调试代码必须是处在工作状态,否则连不上。常见的是服务端程序处于监听状态,必须给服务端一个指令,让它工作起来,才能attach。

5.  没有设置断点,有时debug probe中没法操作,会提示Cannot execute: debug process is busy。

六、  多进程调试,多线程调试

这个都是支持的,默认部分启用,具体的看官方文档,内容也不是太多。

                                              

你可能感兴趣的:(Python,Wingide,调试,编程)