Based on the answer to this question I was trying to use the line_profiler with a cythonized function.
On the abovementioned question, the accepted answer gives us an example on how to use it with jupyter notebook.
However, when I try to build the pyx
file using disutils it doesn't work.
We I plainly try to run the script using
kernprof -l -v script.py
It only returns the the Timer unit
elapsed time.
If I try to decorate the function on the cython file using @profile
, it doesn't compile returning:
undeclared name not builtin: profile
Any ideas ?
The
profile
decorator is injected into theglobals
namespace bykernprof
and is thus not available at compile time. However, you can apply theprofile
decorator to a function even after it has been defined. For example, in yourscript.py
you could write the following.The third line of the snippet will fail if you run the script using standard python, i.e.
python script.py
, because theprofile
decorator is not defined. But it should behave as intended if you run it usingkernprof
.