Почему "pip install hwrt --upgrade" обновляется до произвольной версии (иногда также понижается)?

Я только что выполнил

$ sudo pip install hwrt --upgrade

чтобы установить последнюю версию пакета Python hwrt. Я добавил возможность получить версию пакета с помощью hwrt --version. Теперь я получаю это странное поведение:

$ hwrt --version
hwrt 0.1.201
$ sudo pip install hwrt --upgrade
[... some output ...]
$ hwrt --version
hwrt 0.1.203
$ sudo pip install hwrt --upgrade
[... some output ...]
$ hwrt --version
hwrt 0.1.205
$ sudo pip install hwrt --upgrade
[... some output ...]
$ hwrt --version
hwrt 0.1.200

Что здесь происходит?

У меня pip 6.0.7 from /usr/local/lib/python2.7/dist-packages (python 2.7)

Многословный

Я только что запустил sudo pip install hwrt --upgrade --verbose > install.log.

Полный журнал находится здесь: http://pastebin.com/eZ9M9UVd

Представляется интересным следующее:

[...]
Using version 0.1.211 (<-this is the version it should be)[...]
[...]
Collecting hwrt from https://pypi.python.org/packages/source/h/hwrt/hwrt-0.1.211.tar.gz#md5=b75ac2f4c644743cfa865f086163a93e
  "GET /packages/source/h/hwrt/hwrt-0.1.211.tar.gz HTTP/1.1" 200 2228910
  Downloading hwrt-0.1.211.tar.gz (2.2MB)
  Downloading from URL https://pypi.python.org/packages/source/h/hwrt/hwrt-0.1.211.tar.gz#md5=b75ac2f4c644743cfa865f086163a93e
  Running setup.py (path:/tmp/pip-build-lWJUXg/hwrt/setup.py) egg_info for package hwrt
    Running command python setup.py egg_info
    running egg_info
    creating pip-egg-info/hwrt.egg-info
    writing requirements to pip-egg-info/hwrt.egg-info/requires.txt
    writing pip-egg-info/hwrt.egg-info/PKG-INFO
    writing top-level names to pip-egg-info/hwrt.egg-info/top_level.txt
    writing dependency_links to pip-egg-info/hwrt.egg-info/dependency_links.txt
    writing manifest file 'pip-egg-info/hwrt.egg-info/SOURCES.txt'
    warning: manifest_maker: standard file '-c' not found

    reading manifest file 'pip-egg-info/hwrt.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    no previously-included directories found matching 'docs/_build'
    writing manifest file 'pip-egg-info/hwrt.egg-info/SOURCES.txt'
  Source in /tmp/pip-build-lWJUXg/hwrt has version 0.1.211, which satisfies requirement hwrt from https://pypi.python.org/packages/source/h/hwrt/hwrt-0.1.211.tar.gz#md5=b75ac2f4c644743cfa865f086163a93e
[...]
Found existing installation: hwrt 0.1.204
Uninstalling hwrt-0.1.204:
[...]
Successfully installed argparse-1.2.1 hwrt-0.1.209
Cleaning up...

Ответ 1

Пока я не могу ответить на вопрос, почему я думаю, что это ваш основной вопрос, я могу предложить решение проблемы, если это вызывает проблемы. Краткая версия - это просто указать, какую версию вы хотите, например:

[email protected]:~$ pip list --outdated | grep Django
Django (Current: 1.7.5 Latest: 1.7.6)
pip install -U Django==1.7.6

Это особенно полезно, если вы что-то создаете и хотите указать зависимости, которые остаются статичными, поэтому вам не нужно обновлять свой код, если изменяется базовая зависимость.

Иногда вы не знаете, какая версия подходит, например, зная, что вам нужно использовать версию "до версии X", но не знаете, какой номер нужно установить. Если вы попытаетесь установить неверную/несуществующую версию, Pip покажет вам доступные версии. Например:

[email protected]:~$ pip install Django==-1
Collecting Django==-1
  Could not find a version that satisfies the requirement Django==-1 
(from versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 
... lots that I'm skipping ... 
1.6.8, 1.6.9, 1.6.10, 1.7, 1.7.1, 1.7.2, 1.7.3, 
1.7.4, 1.7.5, 1.7.6, 1.8a1, 1.8b1, 1.8b2)
  No distributions matching the version for Django==-1

Итак, я знаю, что мне нужна установка до 1.7, я, вероятно, могу использовать 1.6.10.