line_profiler: what am I doing wrong?
Neal Becker
ndbecker2 at gmail.com
Tue Feb 10 19:18:56 EST 2015
Ethan Furman wrote:
> On 02/10/2015 04:06 PM, Neal Becker wrote:
>> I inserted
>> @profile
>> def run(...)
>>
>> into a module-level global function called 'run'. Something is very wrong
>> here. 1. profile results were written before anything even ran
>> 2. profile is not defined?
>>
>> kernprof -l ./test_unframed.py --lots --of --args ...
>>
>> Wrote profile results to test_unframed.py.lprof
>> Traceback (most recent call last):
>> File "/home/nbecker/.local/bin/kernprof", line 9, in <module>
>> load_entry_point('line-profiler==1.0', 'console_scripts', 'kernprof')()
>> File "/home/nbecker/.local/lib/python2.7/site-packages/kernprof.py", line
>> 221,
>> in main
>> execfile(script_file, ns, ns)
>> File "./test_unframed.py", line 721, in <module>
>> @profile
>> NameError: name 'profile' is not defined
>
> I'm going to guess that writing the profile results is in a try/finally -- so
> first you see the results being written, then the exception that triggered.
>
> --
> ~Ethan~
I believe you are suggesting the apparent out-of-order is due to try/finally,
but kernprof is supposed to inject 'profile' into the global namespace, so
@profile should be defined - I don't know why it isn't working.
--
-- Those who don't understand recursion are doomed to repeat it
More information about the Python-list
mailing list