Pip cannot find package version which was previously installing

pip
python

#1

Our latest build failed during the dependencies step. It seems that pip can’t find a version of a package to install. It’s a version we’ve been building with for some time, and is still available on PyPI: https://pypi.python.org/pypi/django-filter/0.12.0 Could it be cache-related?

[...]
Downloading/unpacking django-filter==0.12.0 (from -r requirements.txt (line 13))
  Could not find a version that satisfies the requirement django-filter==0.12.0 (from -r requirements.txt (line 13)) (from versions: 0.13.0, 0.5.1, 0.5.3, 0.1.0, 0.5.0, 0.7, 0.2.0, 0.10.0, 0.8, 0.5.2, 0.9.1, 0.9.2, 0.11.0, 0.6a1, 0.5.4, 0.9.0, 0.6)
Cleaning up...
No distributions matching the version for django-filter==0.12.0 (from -r requirements.txt (line 13))
Storing complete log in /home/ubuntu/.pip/pip.log

/usr/bin/env pip install --exists-action=w -r requirements.txt returned exit code 1

Action failed: /usr/bin/env pip install --exists-action=w -r requirements.txt

Using Ubuntu 12.04. Right before it failed, this section was added to the circle.yml:

machine:
  python:
    version: 2.7.10

We need 2.7.7+ in the latest release and i believe our production image is running 2.7.11 (didn’t see that option at https://circleci.com/docs/build-image-precise/#python). Also tried 2.7.7, 2.7.8, and 2.7.9, with the same result.

Requirements install fine locally.


#2

Here’s what i discovered after further review: v0.12.0 of django-filter differs from the other versions in that it is only released as a .whl and not as a .tar.gz. This tells me that the pip install on 12.04 doesn’t install wheels.

i changed the Python version to 2.11.0, which i believe is not pre-installed and is using pyenv to install it on the fly. This time, the requirement installed, which tells me that while the pre-installed versions cannot install wheels, the pyenv-generated python environments can.

i wonder what will happen to this build when Python 2.11.0 is added as a pre-installed image.


#3