Главная > Администрирование, общие вопросы, Программирование > Python: PIP не хочет ставить нужную версию.

Python: PIP не хочет ставить нужную версию.

Всем привет.

Сегодня столкнулся с проблемой, хотел откатить django-tastypie до пердыдущей версии, т.к. в новой половина тестов начала падать. Но тут меня ждал сюрприз - pip отказался ставить нужную версию пакета, при этом нагло заявляя в лицо: "вы просили версию X, но я поставлю Y".

Такое сообщение он выдал:
$ pip install django-tastypie==0.9.11
Downloading/unpacking django-tastypie==0.9.11
Running setup.py egg_info for package django-tastypie

Requested django-tastypie==0.9.11, but installing version 0.9.12
<...>

Я, честно говоря, несколько был шокирован такой настойчивостью pip. Пришлось показать ему кто в virtualenv'е хозяин, первая попытка пофиксить проблему была удачной, но костыльной. Это установка пакета по ссылке с pypi:
pip install https://pypi.python.org/packages/source/d/django-tastypie/django-tastypie-0.9.11.tar.gz#md5=711b29265917405c226f4594782e7e9b

Далее, ещё немного погуглив, я нашёл корень проблемы. На одном форуме было сказано что в pip есть известный баг: когда есть папка build с уже распакованными ресурсами pip отказывается проверять версию пакета, который мы ставим. Хотя, судя по сообщению: "Requested django-tastypie==0.9.11, but installing version 0.9.12", это скорее странная фича, чем баг.

Решение, как вы уже догадались, такое:
$ rm -rf $VIRTUAL_ENV/build/django-tastypie
$ pip install django-tastypie==0.9.11

Если вы это делаете не из-под virtualenv'а, то переменную $VIRTUAL_ENV заменить на путь до места, где лежат нужные исходники. Можете попробовать его найти с помощью команды find, если не знаете где оно.

После этого, pip поставил нужную версию не споря со мной.

Пожалуйста, оцените полезность и качество данной статьи. Одна звезда - плохо, 5 - хорошо.
1/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.2/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.3/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.4/5.5/5. (Еще не оценили)
Загрузка...
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.