Working group for Python CPAN-equivalence?

Ben Finney ben+python at
Wed Mar 3 23:30:35 CET 2010

Terry Reedy <tjreedy at> writes:

> On 3/3/2010 12:05 PM, John Nagle wrote:
> > CPAN is a repository. PyPi is an collection of links.
> As Ben said, PyPI currently is also a respository and not just links
> to other repositories.

It's a repository with holes. Just because a package is registered is no
indication that the package is available from PyPI.

> > CPAN has over 260 mirrors. PyPi has none.
> A mirroring system has been or is being set up with at least a couple
> of mirrors for things that are hosted at PyPI.

And that caveat is a big problem. Since PyPI allows registration of
packages that are not themselves hosted at PyPI (often because their
license terms are too restrictive for PyPI to redistribute the work),
the mirror system will miss them.

So there will be package-shaped holes in the PyPI mirror, meaning that
even well-specified dependencies and a reliable mirror network will not
be enough to make dependencies reliably satisfiable.

> > CPAN enforces standard organization on packages. PyPi does not.

This is, I think, something we don't need as much in Python; there is a
fundamental difference between Perl's deeply nested namespace hierarchy
and Python's inherently flat hierarchy.

> > CPAN has quality control, with testers and a test reporting system.
> > PyPi does not.
> People who are familiar with and like CPAN are free to help improve
> PyPI. Those of us not familiar with it may not know what we are
> missing, or have little idea about what works with CPAN.

An important first step would be to reject from PyPI any package that
isn't available for automated testing on the servers. That requires,
AFAICT, rejecting any package without the source package uploaded.

 \     “Oh, I realize it's a penny here and a penny there, but look at |
  `\      me: I've worked myself up from nothing to a state of extreme |
_o__)                                          poverty.” —Groucho Marx |
Ben Finney

More information about the Python-list mailing list