If you are running a stock OctoPi 0.13 or later you can now stop reading, this should only concern OctoPi 0.12 or older, or manual/modified installs that still run older pip and setuptools versions :)

Note: You can find out your OctoPi version by SSHing into your OctoPi instance and then doing a cat /etc/octopi_version:
pi@octopi ~ $ cat /etc/octopi_version
0.12.0
If you flashed your OctoPi instance later than May 2016, you are most likely not running OctoPi 0.12. See also the FAQ.

It has come to my attention that there was a change on python’s package index PyPI on October 26th that causes a problem with the pip and setuptools versions still installed on OctoPi versions 0.12 and older. This problem manifest such that it is no longer possible to fetch dependencies e.g. during updates, causing a broken install if it happens during an OctoPrint install. An example output of this kind of problem follows:

Scanning index of all packages (this may take a while)
Reading http://pypi.python.org/simple
Couldn't find index page for 'futures' (maybe misspelled?)
No local packages or download links found for futures>=3.1.1,<3.2
error: Could not find suitable distribution for Requirement.parse('futures>=3.1.1,<3.2')

The key here is the line Reading http://pypi.python.org/simple - http://... is no longer supported since the above mentioned upgrade on PyPI’s side, its replacement is the https version of the URL https://pypi.python.org/simple. The by now rather old tools on OctoPi 0.12 still use the old URL however and there lies the problem.

To fix this, you’ll need to run two manual commands via SSH on your OctoPi instance:

  1. ~/oprint/bin/pip install --index-url https://pypi.python.org/simple --upgrade pip
  2. printf -- "[easy_install]\nindex-url = https://pypi.python.org/simple\n" > ~/.pydistutils.cfg

These two lines will upgrade your installed version of pip to a current one that is compatible to the changes mentioned above and also configure your Python environment’s setuptools to use the new https URL so it will be able to fetch dependencies when updating OctoPrint.

If you already ran into issues on update, e.g. to 1.3.5 that was released a couple of days prior to the PyPI change, after running the two commands up there also do this:

cd ~/OctoPrint
git pull
~/oprint/bin/python setup.py install
sudo service octoprint restart

I’ve also added a link to this post to the FAQ.

edit 2017-11-03: Add information on how to determine the OctoPi version.

edit 2017-12-13: Add that old pip and setuptools version are affected in general.