Retrieving the full command line
Oscar Benjamin
oscar.j.benjamin at gmail.com
Tue Jan 22 19:53:21 EST 2013
On 22 January 2013 23:46, Steven D'Aprano
<steve+comp.lang.python at 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
More information about the Python-list
mailing list