On Nov 30, 2008, at 17:39 PM, Josselin Mouette wrote:
When stripping .egg-info files, you run into problems with useless
code that checks for dependencies (while the packaging system
already checks for them), so you have to strip such code as well.
Let's put it like this: as the author of an application and some
libraries written in Python, I would like it if my code could run on
$operating_system_distribution even before someone has gotten around
to packaging it for $operating_system_distribution. Therefore, I
need a way to tell whether some dependency is already installed. I
could write a giant switch statement for all known package management
tools:
if platform.dist()[0] == 'debian':
os.system("dpkg --list...")
elif platform.dist()[0] == 'redhat':
os.system("rpm -q...")
elif platform.system() == 'windows':
import win32api
# probe registry ???
... etc
My code currently runs on nine operating systems and I hope to
support a lot more before I'm through, so this switch statement would
be a significant undertaking to support my users on various platforms.
Fortunately, pkg_resources does this for me in a generic, cross-
platform way so that my workload is substantially reduced:
pkg_resources.require('my_dependency >= 1.0')
Note, this didn't use to work so well on some Linux distributions
back in the bad old days when they removed .egg-info files, but
nowadays it works very well on all of the aforementioned nine
operating system distributions that I am aware of.
Now, you as a Debian developer may feel that you would have developed
my application differently than me, such as perhaps step 1: make the
code run on $operating_system_distribution even before it has been
packaged for $operating_system_distribution, or you may not, but
either way I truly appreciate that nowadays you preserve the .egg-
info files so that I have the option of doing it this way.
Regards,
Zooko
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig