I developed a program consisting of a package which is executable (i.e. two files x/__init__.py
and x/__main__.py
), so I can execute it using python -m x
, if the package resides in the python path.
I never tried to distribute Python packages/modules and I don't have any experience in that field (yet)... I already noticed that there are many different systems and now I have three questions:
Which system is appropiate for a Python 3(.2) program? distribute? distutils? setuptools?
How can I add kind of a "wrapper script" to the distribution that executes the module directly without the hassle with
python -m …
so that the user can just type x (of course the actual name is a bit more unique :) on the shell.How can I do 2. in a platfom-independent way?
Thanks! :)
Use either
distribute
orsetuptools
, the former is a fork of the latter, with some improvements and better documentation. Either one is a big step up fromdistutils
, which is part of the python standard library.You want a console script, for which you define an entry point:
where
foo
andbar
would be scripts that you can call on the command line. The indicated function will be called withsys.argv[1:]
as the first and only argument.Let the installation tools take care of that; it works fine on Windows. :-)