- 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.
- EJB 3.0 Database Persistence with Oracle Fusion Middleware 11g: LITE
- Photoshop 平面廣告設計從入門到精通
- RESTful PHP Web Services
- Photoshop圖形圖像處理實用教程
- SketchUp/Piranesi印象彩繪表現項目實踐
- AutoCAD 2020從入門到精通
- SolidWorks 2019快速自學寶典
- ANSYS Workbench中文版超級學習手冊
- 神奇的中文版Photoshop CC 2017入門書
- 無師自通AutoCAD 2014中文版機械設計
- Python Testing Cookbook
- Learning Dojo
- Apache JMeter
- Python氣象應用編程
- AI設計時代:Midjourney實戰應用手冊