一直以来,很喜欢方便而强大的ipython调试python,但始终没有机会仔细看高版本的手册,今天偶然在这里 看到一个调试单独函数的小技巧,顺便浏览了下ipython主站的文档,记录如下。 通常我有个函数要调试,我会在想要的位置插入一个 ipdb的断点。
def oauth():
'''
测试 oauth 功能
'''
import ipdb; ipdb.set_trace()
appid = u"abc"
r_url = u"http://www.baidu.com/"
scope = u"snsapi_base"
url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s'
'APPID&redirect_uri=%s&response_type=code&scope=%s&'
'state=STATE#wechat_redirect' % (appid, r_url, scope)如
可以通过设置一个自定义的函数
def debug(f, *args, **kwargs):
from IPython.core.debugger import Pdb
pdb = Pdb(color_scheme='Linux')
return pdb.runcall(f, *args, **kwargs)
实现 debug(oauth)
的效果
1.建立一个py文件
$cd `ipython locate profile`/startup/
建立一个tool.py文件,内容如下:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
def set_trace():
from IPython.core.debugger import Pdb
Pdb(color_scheme='Linux').set_trace(sys._getframe().f_back)
def debug(f, *args, **kwargs):
from IPython.core.debugger import Pdb
pdb = Pdb(color_scheme='Linux')
return pdb.runcall(f, *args, **kwargs)
简单解释一下
- ipython locate profile 命令能够返回 ipython 的配置目录
- 其下的startup目录下的文件会在 ipython启动前运行。