[Distutils] Released: pip 7.0 and virtualenv 13.0

Donald Stufft donald at stufft.io
Fri May 22 06:21:19 CEST 2015


I'm happy to say that I've just cut the releases of pip 7.0 and virtualenv 13.0
and I have uploaded them to PyPI. For the full list of changes go visit the
respective changelogs, however the biggest change here is that in pip 7.0 when
pip finds and downloads a sdist, instead of installing that sdist directly
it will instead build a wheel of that and cache it locally. From then on out
it will use that cached wheel to install instead of downloading and building
the sdist each time. This can have a profound impact upon installation speed.

For instance, taking a look at the popular lxml library:

    # Without a locally cached wheel
    $ time pip install lxml
    pip install lxml  36.00s user 1.40s system 98% cpu 38.117 total

    # The next time, with a primed cache.
    $ time pip install lxml
    pip install lxml  0.61s user 0.10s system 94% cpu 0.750 total

Some important notes about this new feature:

* If the wheel project is not installed, then this feature will be disabled,
  however get-pip.py and virtualenv both will now install wheel by default.

* If attempting to actually *build* the wheel fails for any reason, it will
  fall back to the older method of simply installing the sdist directly.

* If a project cannot be installed correctly from a wheel, but it can
  successfully build a wheel, you can disable using wheels for that project
  by adding the flag --no-binary project1,project2,project3 to tell pip not to
  use binaries for those projects. You can use the :all: psuedo identifier to
  disable all wheels.

I'm pretty excited about this release, caching built wheels is going to result
in a tremendous speedup for a lot of common cases. As with any big change there
is a pretty good change that this will cause breakages for some percentage of
projects as well as have bugs within the system itself. As always, if you find
a bug please feel free to open an issue up on the pip issue tracker at

Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20150522/cb1a28e7/attachment-0001.sig>

More information about the Distutils-SIG mailing list