- Plone 3 Products Development Cookbook
- Juan Pablo Gimenez Marcos F.Romero
- 391字
- 2021-08-06 17:05:58
Taking advantage of an enhanced interactive Python debugger with ipdb
As a Python developer, you should already be familiar with pdb
. So think of ipdb
as a Python debugger with many of the advantages IPython provides. ipdb
, for example, is much easier to use thanks to the IPython autocomplete feature.
Note
You can find the official documentation for pdb
for Python 2.4 at http://www.python.org/doc/2.4.4/lib/module-pdb.html.
ipdb
has another very useful and important feature which is the ability to get an IPython shell in our instance console whenever we want by means of adding the /ipdb
suffix to any URL.
How to do it…
- Add the
iw.debug
line ineggs
parameter of[buildout]
part:[buildout] ... # Add additional eggs here eggs = iw.debug
- Insert an
iw.debug
line in thezcml
parameter of[instance]
part:[instance] ... # If you want to register ZCML slugs for any packages, # list them here. # e.g. zcml = my.package my.other.package zcml = iw.debug
- Rebuild your instance. We need to build our Zope instance again to let it know that there were some changes:
./bin/buildout
- Run your instance. Then run the instance in foreground mode to get a handle of its console:
./bin/instance fg
How it works…
Given that we haven't written any line of code yet, we won't call ipdb
from inside the (non-existing) code. What we need to know is that by adding these lines anywhere in the code, we will get the prompt from the improved debugger:
import ipdb; ipdb.set_trace()
But we do have a Plone site running, so let's try to get an IPython shell on demand. Access http://localhost:8080/plone/ipdb
and go to your foreground console.
There will be an ipdb
prompt waiting for you. Use the ll
command (double "L" in lowercase) to get a list of local variables. Then test some other things: context
, is the object we called ipdb
from, in our example, the Plone site. In this particular case, it also happens to be the portal
variable.

Note
More information about ipdb
can be found at: http://pypi.python.org/pypi/iw.debug.
- 四時風(fēng)月繪:國風(fēng)水墨CG插畫繪畫技法
- 邊做邊學(xué):Photoshop圖像制作案例教程(第2版·Photoshop 2020)
- Photoshop CS6從入門到精通
- Photoshop案例實戰(zhàn)從入門到精通
- Django 1.0 Website Development
- SPSS 28.0統(tǒng)計分析從入門到精通(升級版)
- OpenCV項目開發(fā)實戰(zhàn)(原書第2版)
- Photoshop電商設(shè)計與產(chǎn)品精修實戰(zhàn)(微視頻版)
- Indesign平面排版技術(shù)應(yīng)用
- After Effects 2022從新手到高手
- Oracle BI Publisher 11g: A Practical Guide to Enterprise Reporting
- Creo快速入門教程(Creo 8.0中文版)
- 玩轉(zhuǎn)掌上生活 手機網(wǎng)上生活達人秘笈
- WordPress Multisite Administration
- After Effects CC入門與應(yīng)用