Retrieving the full command line

Oscar Benjamin oscar.j.benjamin at gmail.com
Thu Jan 24 05:06:37 EST 2013


On 24 January 2013 04:49, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
[SNIP]
>
> Contrariwise, I don't believe that there is currently *any* way to
> distinguish between running a script with or without -m. That should be
> fixed.

As I said earlier in the thread, the __package__ module global
distinguishes the two cases:

~$ mkdir pkg
~$ touch pkg/__init__.py
~$ vim pkg/__main__.py
~$ cat pkg/__main__.py
import sys
if __package__ is None:
    cmdline = [sys.executable] + sys.argv
else:
    cmdline = [sys.executable, '-m', __package__] + sys.argv[1:]
print(cmdline)
~$ python pkg/__main__.py arg1 arg2
['q:\\tools\\Python27\\python.exe', 'pkg/__main__.py', 'arg1', 'arg2']
~$ python -m pkg arg1 arg2
['q:\\tools\\Python27\\python.exe', '-m', 'pkg', 'arg1', 'arg2']


Oscar



More information about the Python-list mailing list