distribute and reference static content in a python package

Vince Forgetta vincenzo.forgetta at mail.mcgill.ca
Thu Feb 2 13:42:44 EST 2012


Hi,

I have developed a python program that contains multiple python modules
and static content in the form of fonts (pil,pbm and tff files),  html,
images, css and javascript.

I want to share the program with others as a python package. I have
followed the instructions at 

http://guide.python-distribute.org/creation.html

I have created an identical structure (apart from directory naming) as
specified in the link, with the exception of a "static" directory within
the module directory (towelstuff in the example). Within this directory
are sub-directories named "css", "html", "images", "fonts" and "js".

TowelStuff/
    bin/
        run.py
    CHANGES.txt
    docs/
    LICENSE.txt
    MANIFEST.in
    README.txt
    setup.py
    towelstuff/
        __init__.py
        module1.py
        module2.py
        static/
            images/someimage.png
            css/
            html/
            js/
            fonts/


When the user install the program using "python setup.py install", the
modules (in towelstuff) are copied to the common python library path
(e.g. /usr/lib/python2.7/site-packages/), but the static content is not
(understandably).

What is common method to distribute static content, and how to I make
reference to it in my python program?

For programs in TowelStuff/bin (i.e. run.py), I currently make reference
to the static content like so:

sys.path[0] + "../towelstuff/static/images/someimage.png"

I am sure there is a more pythonic way of doing this ...

Thanks in advance for the help.

Vince




More information about the Python-list mailing list