Features for a Python package manager?

Nick Coghlan ncoghlan at iinet.net.au
Sat Dec 25 07:40:57 EST 2004


Georg Brandl wrote:
> Hello c.l.py,
> 
> what features would you expect of a Python package manager, similar to
> CPAN or rubygems?
> 
> I am currently planning to write such a thing, at first privately for
> myself, and if it's proving useful, I think about releasing it.

I've contemplated such a beast myself, but have never got further than a cursory 
look at "what work has already been done that I should take into account?"

Howevever, it sounds like that info would be useful to you, so here's what I've got:

PEP 314 (Metadata for Python Packages v 1.1) details the properties of the 
metadata that the Python repository relies on.

Don't worry about PEP 241 - it has been superceded by PEP 314.

PEP 301 describes PyPI (Python Package Index) - the central index of available 
packages. A running version of it can be found at http://www.python.org/pypi

PEP 243 is probably worth looking at, although I believe it is basically 
superceded by PEP 301.

PEP 262 describes a proposed (local system) installation database. An 
implementation already exists in the nondist section of CPython's CVS 
repository, but further progress is currently stalled due to lack of a champion.

It would also be good to be aware of how distutils currently works (even if 
that's just by reading its documentation). Doing your own trawl through PEP 0 
wouldn't hurt, either (it's possible I missed something relevant). The archives 
of python-dev and the distutils SIG may also provide good info.

If you're serious about doing a good job (i.e. to a "possibly included with the 
standard Python distribution some day" standard), it may be worth posting a 
question on python-dev about it. Just say that you're contemplating writing such 
a tool for your own use, and are interested in any ideas which aren't currently 
documented in the places I mentioned above. You'll find several of the authors 
of the above material frequent python-dev, and will hopefully have some good 
pointers regarding what needs to be done.

 > I plan to model it after gentoo's portage, with less features of course.
 > Would this be acceptable?

I don't know enough about Portage to answer that question. I do know any package 
manager which made it into the standard distribution would need to work for at 
least the big three platforms (Windows/Mac/*nix) :)

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net



More information about the Python-list mailing list