[Python-Dev] Catch SIGINT at Python startup

Victor Stinner victor.stinner at haypocalc.com
Mon Mar 8 23:01:34 CET 2010


Le lundi 08 mars 2010 22:06:36, vous avez écrit :
> OTOH I think the try/except in site.py around the execution of
> sitecustomize.py might be changed so that it prints a full traceback
> whenever it raises an exception other than ImportError or, again,
> exceptions inheriting from BaseException but not from Exception. IOW I
> think that exceptions coming out of sitecustomize.py should continued
> to be treated non-fatally, apart from ^C and friends, but I think that
> exceptions coming out of site.py *might* be considered more fatally
> once the change to exceptions coming out of sitecustomize.py is made.

Do you mean something like the following code?
----------------------
def execsitecustomize():
    """Run custom site specific code, if available."""
    try:
        import sitecustomize
    except ImportError:
        pass
    except Exception:
        if sys.flags.verbose:
            sys.excepthook(*sys.exc_info())
        else:
            print >>sys.stderr, "'import sitecustomize' failed; use -v for 
traceback"

def execusercustomize():
    """Run custom user specific code, if available."""
    try:
        import usercustomize
    except ImportError:
        pass
    except Exception:
        if sys.flags.verbose:
            sys.excepthook(*sys.exc_info())
        else:
            print >>sys.stderr, "'import usercustomize' failed; use -v for 
traceback"
----------------------

Using these functions, even if sitecustomize fails, usercustomize is imported. 
Can it be a problem? Does usercustomize requires that sitecustomize has been 
initialized correctly?

(The code can be changed to only import usercustomize if sitecutomize succeed 
or failed with an ImportError, but not if it fails with a different error)

-- 
Victor Stinner
http://www.haypocalc.com/


More information about the Python-Dev mailing list