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
:
- You must have both Python 2.5 and Python 3 installed.
- When installing, wxPython for Python 2.5 (unicode), make sure you have Python 2.5 in the PATH instead of Python 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.)
- You must run winpdb with Python 2.5 but rpdb with Python 3
In Windows XP, the last step is done like this:
- Change PATH from C:\Python30 to C:\Python25
- Start new cmd window (otherwise it won't notice the changed PATH)
- Run (c:\Python30\Lib\site-packages>)python winpdb.py
- Change PATH back to C:\Python30
- Start another cmd window (to make it notice the new PATH)
- From the winpdb directory run python rpdb2.py -pwd=<somePassword> -d <command line arguments for your python script>
- 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就可以打开线程运行的代码文件设置断点了。