On Sun, Jun 12, 2016, at 08:56, Adam Bartoš wrote: > Hello, > > I'm trying to employ code like > https://code.activestate.com/recipes/572200/ > at Python 2 startup. The problem is that sys.argv isn't polulated yet > when > sitecustomize is executed. Is there any way around? I was thinking about > something like temporarily chaning sys.modules['sys'] or sys.__dict__ to > something that runs my code on PySys_SetArgv, but that doesn't work since > PySys_SetArgv doesn't invoke any hooks like __setitem__ on sys.__dict__. > So > is there any way how to automatically run my code after sys.argv was set > but before executing the main script (in Python 2)?
From what I can tell, if you create a path hook in sitecustomize.py, argv will have been set before the hook is called for the script. So, for example: import sys edit_done = False def argv_setter_hook(path): global edit_done if edit_done: return try: argv = sys.argv except AttributeError: pass else: argv[:] = get_unicode_argv() edit_done = True raise ImportError # let the real import machinery do its work sys.path_hooks[:0] = [argv_setter_hook] -- https://mail.python.org/mailman/listinfo/python-list