[Python-Dev] [Distutils] how to easily consume just the parts of eggs that are good for you

Dave Peterson dpeterson at enthought.com
Thu Apr 10 01:17:49 CEST 2008

Phillip J. Eby wrote:
>>> Applying LSB and FHS to the innards of Python packages makes as much
>>> sense as applying them to the contents of Java .jar files -- i.e.,
>>> none.  If it's unchanging data that's part of a program or library,
>>> then it's a program or library, just like static data declared in a C
>>> program or library.  Whether the file extension is .py, .so, or even
>>> .png is irrelevant.
>> The FHS defines places to put specific kinds of files, such as command
>> scripts (/bin, /usr/bin, /sbin, or /usr/sbin), documentation
>> (/usr/share/doc/package-name), and configuration files (/etc).  There are
>> several kinds of files identified and places defined to put them.
>> Distribution by eggs has a tendency to scoop up all of those files and put
>> them in /usr/lib/python/site-packages, regardless of where they belong.
> Eggs don't include documentation or configuration files, and they 
> install scripts in script directories, so I don't get what you're 
> talking about here.  For any other data that a package accesses at 
> runtime, my earlier comments apply.

We've talked a bit about this before, and IIRC, at that time you 
(Phillip) were willing to consider patches to setuptools that allowed 
for the inclusion of documentation in eggs such that it was placed into 
an LSB/FHS appropriate directory (or some standard dir for non-LSB 
systems) during the install process.   I'm assuming that something 
similar for config files wouldn't be a problem either?  Or is this whole 
idea out the window given the way the discussion has trended and the 
reiteration above that eggs are meant to be similar in principal to jars?  

Not that I have a patch yet, but we've been working on it in our "spare 
time" over here at Enthought.  I'm now wondering if we're wasting our 
time. :-)

I think the biggest use-case confusion in the current discussion is 
whether we're talking about applications or libraries?  If we're talking 
about libraries, then clearly distribution of only executables is 
sufficient because anything else should be handled by the application 
distribution when that library is used in an app.  Whereas if we're 
talking about applications, you probably *do* want to include 
documentation, configuration info, etc. in your distribution.   I think 
I can sum up any further points by simply asking: "Should it be safe to 
assume I can distribute my application via eggs / easy_install just 
because it is written in Python?"

-- Dave

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-dev/attachments/20080409/95acebba/attachment-0001.htm 

More information about the Python-Dev mailing list