Question

Is it possible? By debug I mean setting breakpoints, inspect values and advance step by step.

Was it helpful?

Solution

You can do remote debugging of python web apps over TCP/IP with winpdb.

(Link appears down as of June 2019. Try PyPI winpdb)

OTHER TIPS

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.

One can debug applications built on Web2py using the following set-up:

  1. Eclipse IDE
  2. Install Pydev into Eclipse
  3. Set Breakpoints on your code as needed
  4. Within Eclipse right-click the file web2py.py and select Debug As -> Python Run
  5. When a breakpoint is hit Eclipse will jump to the breakpoint where you can inspect variables and step thru the code

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.

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:

http://static.techfuel.net/debug_web2py.png

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

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

As Carl stated, it is as easy as:

  1. Installing PyDev in Eclipse
  2. Right Click on your Web2Py project, selecting Debug As > Python Run
  3. Selecting web2py.py as the file to run

No other plugins or downloads are needed.

@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:

enter image description here

See documentation.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top