How to properly package/distribute a pure python module?
blunck at gst.com
Tue Jul 29 17:09:34 CEST 2003
MatthewS at HeyAnita.com (Matt Shomphe) wrote in message news:<5ab0af73.0307281045.6cb13cfe at posting.google.com>...
> Are there any guidelines for packaging a pure python module?
> Specifically, say I have a set of 10 functions, all of varying
> behaviors (no unifying theme to bind them together into clear
> subsets), that I would like to make available to others. What is the
> best structure for the distributed module? A single file called
> "functions.py" that people can put in "site-packages"? A
> subdirectory called "MyFunctions" with an "__init__.py" and the
> "functions.py" files? Or should the functions be broken out into
> individual files?
> I'm sure it depends on some other factorsbut are there general rules
> for constructing a nice, logical package for others to use?
>  site-packages/functions.py (from functions import f1)
>  site-packages/MyFunctions/functions.py, __init__.py (from
> MyFunctions.functions import f1)
>  site-packages/MyFunctions/__init__.py, f1.py, f2.py, f3.py (from
> MyFunctions.f1 import f1)
Do a google search for the distutils module. For examples, look at
any python project (ZSI or SOAPpy for example), and take a look at the
The gist of it is that you define a setup.py module that defines which
modules are to be included in the distro. A user, when they download
your tarball, goes into your directory and (as root): "python setup.py
Once you have your app in distutils compatible format, you can use
distutils to generate .exe installs, rpm installs, tarball downloads,
etc etc etc.
So definitely take a look at distutils. :)
More information about the Python-list