[Python-Dev] Supporting packages on the command line
Nick Coghlan
ncoghlan at iinet.net.au
Fri Oct 15 09:57:19 CEST 2004
Anthony Baxter wrote:
> I'm extremely unconvinced that the semantics of "-m package" or
> "-m package.module" are suitably well thought out to see it in b1.
This was one of the reasons I wrote execmodule - to figure out semantics
which made sense, after my initial attempt at supporting "-m
package.module" failed to handle __path__ correctly.
Executing anything other than PY_SOURCE or PY_COMPILED modules simply
doesn't make sense to me (both execmodule and the current '-m'
implementation report errors if you try to do so)
> If a single compelling way of making it work can be seen in the
> next week, _maybe_ we could sneak it into b2, but I'm really not
> hopeful.
The approach of 'import the containing package' seems to work fairly
well. I can't see any other way to get at the package's __path__
variable in order to locate the module inside it.
I haven't seen any good reasons to lift the PY_SOURCE/PY_COMPILED
restriction, though.
FWIW, the example which convinced me that running modules inside
packages was valuable was "python -m pychecker.checker <script>".
However, given that execmodule can provide this functionality fairly
easily, I voluntarily bumped the relevant patch to Python 2.5 and posted
the Cookbook recipe instead.
If we do postpone this, I'd suggest putting something in the relevant
Python 2.4 "module not found" error message in main.c that notes that
packages aren't supported, though (otherwise I expect we'll get at least
a few bug reports about not finding modules inside packages).
Cheers,
Nick.
More information about the Python-Dev
mailing list