- 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.
- UG NX10.0從新手到高手
- Oracle SOA Suite Developer's Guide
- Solid Works 2021產品設計標準教程
- Drupal: Creating Blogs, Forums, Portals, and Community Websites
- 中文版Photoshop CC平面設計從入門到精通(唯美)
- Maya 2020基礎教材
- Django 1.0 Template Development
- IBM WebSphere eXtreme Scale 6
- Unity 2020游戲開發快速上手
- 中文版Photoshop CC基礎教程
- Adobe創意大學Premiere Pro影視剪輯師標準實訓教材(CS6修訂版)
- Microsoft Windows Communication Foundation 4.0 Cookbook for Developing SOA Applications
- 中文版Corel DRAW X5案例實訓教材
- SolidWorks三維設計及工程圖速成
- AutoCAD 2018中文版完全自學手冊