[Catalog-sig] Package maintenance mechanism for Python
mauriceling at acm.org
Wed Apr 27 00:34:37 CEST 2005
I am new to this list. To cut matters short, my concern is this,
PyPI has a module upload mechanism. But is there a module download
mechanism. By that, I meant a mechanism which system admins can use to
download and install a module (library) and keep track of what is
installed into site-package directory through this mechanism?
The problem I see is that maintaining 3rd party libraries in
site-package is a task for system admins or developers, especially when
new versions of Python is installed (say from Python 2.3 to Python 2.4).
All of the libraries (esp those with C modules) needs to be recompiled.
Is there a mechanism for the programmers to find out what is installed
in say, Python2.3's site-packages and download the same modules from
PyPI and install them in Python2.4's site-packages?
I had posted the following in python-list but will replicate it here for
Perhaps this is another call for Python version of CPAN (CPyAN or PYAN).
It can be modelled after Fink or Darwinports.
If I remembered correctly, Fink uses apt-get and curl.
What can be done in PYAN is to encourage all 3rd party library
developers to centralize their libraries in it, which I think all will
gladly respond. All that is needed to be deposited in PYAN is a
description file, like the simplest setup.py file. All that is needed in
this description file is
1. where to download the source codes (e.g. CVS)?
2. version number?
3. standard stuffs (optional) like authors, descriptions, copyright?
Python can then have a built-in mechanism to read the description file
and download the source codes and do the standard "sudo python setup.py
install" to install the library into site-package. The main thing this
mechamisn does is to maintain what had been installed in site-package
through it and what versions. So when newer versions of Python is
installed, there can be a script to take the old site-package log,
download the same set of libraries and install them for the new version
Darwinports uses a very simple means to achieve this. All the
description files are in a CVS repository. The actual source codes for
the libraries may or may not reside in the CVS repository. Darwinports
system installation is little more than checking out the entire
repository of description files. When user wants to install a library,
it then downloads the library's source codes and performs the standard
"configure, make, make install" operations. Of course, the root user
will have to do a update to update to the latest version of description
I think something like this can be set up for Python quite easily. I
recall some time back, there's a long discussion about setting up
Python's version of CPAN but I can't recall the contents of the
Thanks and cheers
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 334 bytes
Desc: not available
Url : http://mail.python.org/pipermail/catalog-sig/attachments/20050427/4361ce9e/mauriceling.vcf
More information about the Catalog-sig