[Nix-dev] Best way to install a bunch of old Python packages

Marc Weber marco-oweber at gmx.de
Fri Sep 26 12:28:37 CEST 2014


I once tried https://gitorious.org/nixpkgs-python-overlay.

Like nixpkgs-overlay and hack-nix this uses a different approach:

a) dump everything from pypi into a format readable by nix
b) use a package description to assemble derivations on the fly.
  This is using a simple brute force solver, if two different package
  versions get "resolved" in the ruby/python case it will simply raise
  an error and stop, then you have to hardcode one. This could be done
  better.

I didn't get far because the that time I noticed that a lot of python
package had not proper dependency information which was readable outside
of python (without running setup.py).

Currently the dump I created is heavily outdated.

Thus yes: There are alternative ways - and I think that its the future
to provide mirrors of pypi - you can download piecewise(!) as needed.
Because in the ruby case there are 40.000+ packages - and you don't want
to download them all if you want to install 5 packages.

You can get an idea about how it should have looked like here:
http://lists.science.uu.nl/pipermail/nix-dev/2011-March/006021.html

Yes - my implementation is just a "prototype" and could be horribly
outdated.

By the way: I think the perfect goal would be creating huge package
databases, so that all software could be installed that way - but that
would also be a lot of work - because each language has its own
constraint. Eg for node its fine if you have

A - B-1.0
 `- C - B-2.0

Because A/C will both get a different view on B

Marc Weber


More information about the nix-dev mailing list