winpdb调试python3

转载:http://askandstudy.blog.163.com/blog/static/19975205820122794551164/


environment:

windows7+python2.6+python3.2

op:
开始以为winpdb是用wxpython的gui开发的,现在还没有支持python3的wxpython,以为不能用来调试python3写的代码。于是前面写了点记录idle调试python3代码的步骤。但是idle实在太不好用,今天又google了下,发现其实winpdb是可以调试python3代码的。
winpdb的主页上都写着的,只能怪自己没仔细看。
 
    

Winpdb 1.4.8 was released. This is a maintenance release that fixes compatibility issues with Python 2.7 and 3.x. You can download it from winpdb.org/download

这个链接里有篇文章可以看看需要怎么做。
http://webcache.googleusercontent.com/search?q=cache:LnyG6z1CSNYJ:python3k.blogspot.com/2008/05/debug-python-3-with-winpdb-138-tychod.html+python3+debugger&cd=5&hl=zh-CN&ct=clnk
原文:
 
    

Wednesday, May 14, 2008

Debug Python 3 with Winpdb 1.3.8 Tychod

Thanks to Nir Aides , the developer of Winpdb I have learned how to debug source code of Python 3 in winpdb . There is some trade - off , though :
  1. You must have both Python 2.5 and Python 3 installed.
  2. When installing, wxPython for Python 2.5 (unicode), make sure you have Python 2.5 in the PATH instead of Python 3.
  3. When installing winpdb, make sure to have PATH set back to Python 3. Install winpdb into the directory of Python 3 (otherwise it won't work). (There may be an error message at the end of installation, just ignore it.)
  4. You must run winpdb with Python 2.5 but rpdb with Python 3
In Windows XP, the last step is done like this: 
  1. Change PATH from C:\Python30 to C:\Python25
  2. Start new cmd window (otherwise it won't notice the changed PATH)
  3. Run (c:\Python30\Lib\site-packages>)python winpdb.py
  4. Change PATH back to C:\Python30
  5. Start another cmd window (to make it notice the new PATH)
  6. From the winpdb directory run python rpdb2.py -pwd=<somePassword> -d <command line arguments for your python script>
  7. in the GUI window of winpdb do File/Attach and write the password you selected for rpdb2.py in the command line

需要同时安装有python2.x和python3,因为wxpython还没有支持python3的版本。
安装wxpython时需要改变PATH设置安装到python2.x中
安装winpdb时需要改变 PATH设置安装到python3中
必须用python2.x运行winpdb用python3运行rpdb

#############################################################
在同一个windows系统里安装多个python版本(python2和python3),在使用时会遇到默认用哪个版本的问题,前几天已经记录了解决方法。

我的主机上已经安装有python2.6和wxpython,现在PATH中只包含python2.6的路径。
安装winpdb到python3目录中。
 
    

D:\devsoftware\python\winpdb-1.4.8>dir /w 驱动器 D 中的卷是 others 卷的序列号是 A48D-EC9C D:\devsoftware\python\winpdb-1.4.8 的目录 [.] [..] .hgtags .hg_archival.txt [artwork] [build] MANIFEST README.txt rpdb2 rpdb2.bat rpdb2.py rpdb2.pyc setup.py winpdb winpdb.bat winpdb.py winpdb.pyc winpdb_.pyw winpdb_inst.py [__pycache__] 15 个文件 1,118,979 字节 5 个目录 36,444,315,648 可用字节 D:\devsoftware\python\winpdb-1.4.8>c:\python32\python.exe setup.py install -f running install running build running build_py running build_scripts creating build\scripts-3.2 copying winpdb_inst.py -> build\scripts-3.2 copying and adjusting winpdb_.pyw -> build\scripts-3.2 copying winpdb.bat -> build\scripts-3.2 copying rpdb2.bat -> build\scripts-3.2 running install_lib copying build\lib\rpdb2.py -> c:\python32\Lib\site-packages copying build\lib\winpdb.py -> c:\python32\Lib\site-packages byte-compiling c:\python32\Lib\site-packages\rpdb2.py to rpdb2.pyc byte-compiling c:\python32\Lib\site-packages\winpdb.py to winpdb.pyc running install_scripts copying build\scripts-3.2\rpdb2.bat -> c:\python32\Scripts copying build\scripts-3.2\winpdb.bat -> c:\python32\Scripts copying build\scripts-3.2\winpdb_.pyw -> c:\python32\Scripts copying build\scripts-3.2\winpdb_inst.py -> c:\python32\Scripts running install_egg_info Writing c:\python32\Lib\site-packages\winpdb-1.4.8-py3.2.egg-info D:\devsoftware\python\winpdb-1.4.8>


#################################################################################
折腾了一个小时终于可以调试了。记录一下使用步骤
komodo edit 7中,在toolbox中点右键选"add"-“new command”,在界面上填写如下内容:
命令的名称:随便填吧,我用:winpdbforpy3-a
command填:c:\python26\python.exe c:\Python32\Lib\site-packages\winpdb.py
因为这个是用来启动winpdb的图形界面的,所以是用python2.6来运行python32下的winpdb.py文件
start in:填: c:\Python32\Lib\site-packages
前面的命令都用绝对路径了,这里应该填不填都可以的
run in:选GUI应用
 
上面已经设置好在调试时需要先调用的第一个命令,再设置一个命令:
命令的名称:填:winpdbforpy3-b
command:填:c:\python32\python.exe C:\Python32\Lib\site-packages\rpdb2.py -d %f
start in:填:%D                                   
run in:选New Console
 
这样就设置好了。
测试一下调试
komodo edit中打开需要调试的脚本文件,双击toolbox中的winpdbforpy3-a,可以看到启动了winpdb的主窗口。

 
再双击toolbox中的winpdbforpy3-b,出来一个dos窗口提示设置个密码,随便输入个a回车,提示密码已设置
 
再切换到前面启动的 winpdb主窗口,点file-attach菜单,弹出个窗口提示输入密码,输入上面设置的a,点ok按钮。
 
这里询问需要附加到哪个脚本,双击需要调试的脚本名。
 
可以开始跟在python2.x中一样的调试脚本了
 
 
好记心不如烂笔头,解决过的问题都记录下来。
不把生命浪费在反复的解决曾经解决过的问题上。

###################################################
又想了下,这样分两次执行命令,那把命令都写到一个bat或py文件中,只执行一次应该也可以吧。
这样分两次执行也还能接受,先这么用。

###################################################
其实启动winpdb图形界面主窗口的那个 winpdbforpy3-a命令只需要运行一次,让窗口一直开着就行了,以后调试文件时只双击 winpdbforpy3-b就行了。

###################################################
今天突然想到这样应该可以用winpdb来在windows上调试远程linux主机上的python程序的,那就是 winpdbforpy3-a在windows主机上执行, winpdbforpy3-b在远程linux主机上执行。有空时做一下这个测试看看是不是这样。

当用winpdb调试多线程程序时,有些情况下不太方便进入线程运行的模块文件设置断点,可以点winpdb主界面菜单的file-open source就可以打开线程运行的代码文件设置断点了。

你可能感兴趣的:(python)