On 22 January 2013 23:46, Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info> wrote: [SNIP] > > I am a bit disturbed that you cannot distinguish between: > > python C:\something\on\pythonpath\app\__main__.py > > python -m app > > > by inspecting the command line. I consider it a bug, or at least a > misfeature, if Python transforms the command line before making it > available in sys.argv.
The purpose of the -m option is that you can run a script that is located via the Python import path instead of an explicit file path. The idea is that if '/path/to/somewhere' is in sys.path then: python -m script arg1 arg2 is equivalent to python /path/to/somewhere/script.py arg1 arg2 If Python didn't modify sys.argv then 'script.py' would need to be rewritten to understand that sys.argv would be in a different format when it was invoked using the -m option. I believe that it has previously been proposed to include something like sys.raw_argv, although perhaps for different reasons. Although something that might be more useful to the OP (and that I at one point wanted) would be a function similar to execfile but that would launch a separate process using the same interpreter as the current process. Oscar -- http://mail.python.org/mailman/listinfo/python-list