distutils and data files

Sam Peterson skpeterson at nospam.please.ucdavis.edu
Fri Feb 22 02:28:22 EST 2008


Robert Bossy <Robert.Bossy at jouy.inra.fr> on Wed, 20 Feb 2008 09:29:12
+0100 didst step forth and proclaim thus:

> Sam Peterson wrote:
>> I've been googling for a while now and cannot find a good way to deal
>> with this.
>>
>> I have a slightly messy python program I wrote that I've historically
>> just run from the extracted source folder.  I have pictures and sound
>> files in this folder that this program uses.  I've always just used
>> the relative path names of these files in my program.
>>
>> Lately, I had the idea of cleaning up my program and packaging it with
>> distutils, but I've been stuck on a good way to deal with these
>> resource files.  The package_data keyword seems to be the way to go,
>> but how can I locate and open my files once they've been moved?  In
>> other words, what should I do about changing the relative path names?
>> I need something that could work from both the extracted source
>> folder, AND when the program gets installed via the python setup.py
>> install command.
>>   
> This seems to be a classic distutils  question:  how a python module
> can access to data files *after* being installed?

Man, I was afraid of that.  Python is an awesome language, but this is
yet another instance of seeing something in the standard library
sucking.

> The following thread addresses this issue:
>    http://www.gossamer-threads.com/lists/python/python/163159
>
> Carl Banks' solution seems to overcome the problem: his trick is to
> generate an additional configuration module with the relevant
> informations from the distutil data structure. However it is quite an
> old thread (2003) and I don't know if there has been progress made
> since then, maybe the distutils module now incorporates a similar
> mechanism.

Not if the documentation for 2.5's got anything to say about it.  If
it does, it's well hidden.

I think I'll kill the idea of using distutils for my program.  It
seems like distutils was primarily designed for modules and
extensions.

-- 
Sam Peterson
skpeterson At nospam ucdavis.edu
"if programmers were paid to remove code instead of adding it,
software would be much better" -- unknown



More information about the Python-list mailing list