inspect.stack() or inspect.currentframe() gives "list index out of range error"

Peter Otten __peter__ at web.de
Fri Sep 24 05:39:57 EDT 2010


deluxstar wrote:

> We have an application working on several servers generally written
> with Python 2.6 and Twisted 10.
> The source codes are located in one server and compiled in this
> server. The compiled files are copied to other server via network and
> application server works with these compiled files.
> 
> In this application, I have to write a function to return a value of
> the caller object that calles this function. The function may be
> called from several modules of the application. To achieve this goal,
> I try to use the python inspect module:
> 
> curframe = inspect.currentframe()
> calframe = inspect.getouterframes(curframe, 2)
> calframe[1][0].f_locals['variable']
> 
> This sample code works on local development environment both on linux
> and windows. When checked in to production environment,
> inspect.currentframe() or inspect.stack() function gives "List index
> out of range error".
> 
> When I googled, I found only one clue of copying pyc files:
> http://forum.webfaction.com/viewtopic.php?pid=16808
> 
> Why inspect modules gives this error? OR Is there another way to get
> the caller objects variable value?

Can you provide the actual traceback? Provide a small script that reproduces 
the error? Add print statements and post their output?

print inspect.currentframe
> curframe = inspect.currentframe()
print curframe
> calframe = inspect.getouterframes(curframe, 2)
print calframe

Peter



More information about the Python-list mailing list