Una de las virtudes de Python es que permite generar fácilmente una traza del código ejecutado.
Para casos simples y rápidos, basta cargar el módulo trace:
python -m trace -t script.py argumentos
Si quieres hilar más fino (por ejemplo, rastrear lo que hace Django), puedes añadir algo como lo siguiente al punto de entrada de la aplicación (en el caso de Django, a la vista que te interese, dentro de app)
import linecache
import syslog
import sys
def tracer(frame, event, arg):
if event == "line":
lineNumber = frame.f_lineno
filename=""
name=""
try:
filename = frame.f_globals["__file__"]
name = frame.f_globals["__name__"]
except:
pass
line = linecache.getline(filename, lineno)
syslog.syslog("%s:%s: %s" % (name, lineNumber, line.rstrip()))
return tracer
sys.settrace(tracer)