Reproducible with pip 1.5.6 as follows:
- create and activate a virtualenv
- install wheel
- create a trivial setup.py
- run bdist_wheel
- install the wheel
- bump up the version in setup.py
- run bdist_wheel again
- install the newer version
Contents of setup.py used:
from setuptools import setup
setup(
name='Foo',
version='1.0.0'
)
The previous version remains in site-packages and "Foo" can be uninstalled twice.
If I install Foo as a wheel first and the next version as sdist, the old version is uninstalled properly.
If I install the sdist first and wheel later, I get two Foos in site-packages.
Thus I conclude that wheel installation does not check for an existing installation.
I'm not even sure this bug belongs to pip.