Is it possible? By debug I mean setting breakpoints, inspect values and advance step by step.
-
1The title says win2py, and the tag says web2py. Can you correct one of them? – Ned Batchelder Nov 24 '08 at 20:19
9 Answers
You can do remote debugging of python web apps over TCP/IP with winpdb.
(Link appears down as of June 2019. Try PyPI winpdb)

- 7,183
- 2
- 29
- 38
I haven't used web2py, but if it runs in a terminal window, you can use standard pdb stuff. Add this line somewhere in your code:
import pdb; pdb.set_trace()
This will invoke the debugger and break. Then you can use PDB commands: n to step to the next line, l to list code, s to step into a function, p to print values, etc.

- 364,293
- 75
- 561
- 662
One can debug applications built on Web2py using the following set-up:
- Eclipse IDE
- Install Pydev into Eclipse
- Set Breakpoints on your code as needed
- Within Eclipse right-click the file web2py.py and select Debug As -> Python Run
- When a breakpoint is hit Eclipse will jump to the breakpoint where you can inspect variables and step thru the code

- 2,896
- 2
- 32
- 50
You can also use Visual Studio 2010. Here's how:
- Download and install Python Tools for Visual Studio.
- Create a new project from existing code (File > New > Project From Existing Code...)
- Specify your web2py folder and use the defaults.
- Right-click on web2py.py and choose Set as Startup File.
- Set breakpoints and hit F5 (run) or right-click on web2py.py and choose Start with Debugging.
This is a nice setup if you already use visual studio.

- 1,234
- 14
- 18
Yes, it is possible, Due to the "span prevention" I am still not allowed to post screenshots, but here is a full screenshot hosted at my website:

- 86
- 4
I'm debugging web2py applications with Eclipse and PyDev. Here is an article: http://www.web2pyslices.com/main/slices/take_slice/2

- 124
- 1
- 8
Here is an article on debugging python with pdb, which will work with web2py. http://sontek.net/debugging-python-with-pdb

- 12,111
- 12
- 49
- 61
@Ned Batchelder is almost right, but the standard way of doing it in web2py is slightly different.
Instead of `import pdb; pdb.set_trace(), you use the code:
from gluon.debug import dbg
dbg.set_trace()
When executing the web application, the application will freeze when it reaches this section of code. You then go to http://127.0.0.1:8000/admin/debug/interact (using the root URL for your application) and it will show a fully interactive, web based debugger:
See documentation.

- 4,492
- 2
- 19
- 22