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

Адаптивная, SEO подготовленная WordPress тема WordPress тема под вирусный контент и социальные сети

Всем привет.

Сегодня столкнулся с проблемой, хотел откатить 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 http://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 поставил нужную версию не споря со мной.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: