[Python-Dev] a simpler way to invoke pydoc, pdb, unittest, etc

Ilya Sandler ilya at bluefir.net
Mon Sep 27 03:46:00 CEST 2004


A problem:

a number of standard python modules come with a command line interfaces,
e.g.  pydoc.py, pdb.py , unittest.py, timeit.py, uu.py
But it appears that there is no convenient out-of-the-box way to invoke
these tools from command line...

Basically one either has to write wrappers or to
invoke them like this: python /usr/lib/python2.3/pdb.py

Neither approach is convenient...

Am I missing something obvious? If not, then would the following make
sense?

When a script specified from command line is not found and the script name
does not end with py, treat the script as a module name and execute
that module as __main__

So
python pdb
would be equivalent to
python /usr/lib/python2.3/pdb.py

A possible variation of the same idea would be to have an explicit
command line option -m (or -M). More typing, but less magic...

Ilya

PS. An obvious alternative would be to install wrapper
scripts/symlinks next to python, but I don't understand python packaging
well enough to make a judgement here. One obvious problem with wrapper
scripts would be a difficulty of versioning, I wouldn't want to have
 pydoc2.2 pydoc2.3.1 pydoc2.3, etc in my /usr/bin





More information about the Python-Dev mailing list