[Distutils] profiling setuptools console scripts

Chris McDonough chrism at plope.com
Wed Sep 5 19:03:51 CEST 2007


This is very minor, but I recently ran across a case where I wanted  
to profile some code invoked that is invoked by a setuptools  
console_script.  The generated script is in the form:

sys.exit(
    load_entry_point('supervisor==3.0a2', 'console_scripts',  
'supervisord')()
)

Due to the explicit sys.exit() call, I could not (or at least could  
not figure out how to) place the profiling hair in the invoked code.   
I wound up having to change the script to look like this:

cmd = "load_entry_point 
('supervisor==3.0a2','console_scripts','supervisord')()"

if os.environ.has_key('SUPERVISOR_PROFILE'):
     import profile
     import pstats
     profile.runctx(cmd, globals(), locals(), '/tmp/superprofile')
     stats = pstats.Stats('/tmp/superprofile')
     stats.strip_dirs()
     stats.sort_stats('cumulative', 'calls', 'time')
     stats.print_stats(.3)
else:
     sys.exit(eval(cmd))

I'm wondering if the default generated console_script should refrain  
from explicitly calling sys.exit.

What a wonderful thing setuptools is, seriously.  I'm really enjoying  
using it.

- C



More information about the Distutils-SIG mailing list