2013-03-28 7 views
27

Я пытаюсь установить Django 1.4.3, но когда я исполню пип установить, пип продолжает устанавливать Django 1.5 версии вместо 1.4.3пункт установить: Как заставить конкретную версию пакета

sudo pip install -I Django==1.4.3

она возвращает:

Downloading/unpacking Django==1.4.3 
    Running setup.py egg_info for package Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
=== >>>> Requested Django==1.4.3, but installing version 1.5 <<<< ==== 
Installing collected packages: Django 
    Found existing installation: Django 1.5 
    Uninstalling Django: 
     Successfully uninstalled Django 
    Running setup.py install for Django 

    warning: no previously-included files matching '__pycache__' found under directory '*' 
    warning: no previously-included files matching '*.py[co]' found under directory '*' 
    changing mode of /usr/local/bin/django-admin.py to 755 
Successfully installed Django 
Cleaning up... 

, но если я выполняю пип заморозить, он продолжает показывать

Джанго == 1,5

Что я делаю неправильно?

Спасибо

+0

Глупый вопрос, но вы пытались удалить все версии Django, а затем запустить свою команду? – NT3RP

+0

Да, я сделал и не работает. У меня также есть альтернатива для загрузки пакета и его установки вручную, но я хочу знать, есть ли опция в pip, чтобы избежать такого поведения и заставить версию 1.4.3 – kothvandir

+0

вы пробовали только «pip install Django == 1.4.3 ' – catherine

ответ

17

Это может/должен/может быть оказана помощь по очистке сборки каталог для Django в пипс. Существует ошибка для этого, начиная с версии 1.1 see here for details

Вы можете начать проверку этих папок здесь, если вы на OS X или UNIX-подобных системах:

~/.pip 
/tmp/pip-build-root (or pip-build-$USER, if you aren't running pip as root). 

Это если вы не имеете указала новую папку сборки, когда вы установили первую версию Django.

Удачи вам!

+0

Он не работает, ни с флагом -v, ни с установкой« Django <= 1.5 »или с использованием« Django == 1.4.3 ». Он не выдает ошибки, версия 1.5 устанавливается правильно, но продолжает говорить Requested Django == 1.4.3, но устанавливает версию 1.5. – kothvandir

+0

См. Обновленный ответ –

+0

Я уверен, что флаг -V предназначен только для вывода версии установленного в настоящий момент пипса и не имеет ничего общего с 'pip install'. – aiham

8

Как limelight says, вы должны очистить свой кеш и построить каталоги, или пройти во временном чистом месте с помощью --download-cache и флага.

$ pip help install 
[...] 
--download-cache <dir>  Cache downloaded packages in <dir>. 
-b, --build <dir>   Directory to unpack packages into and build in. The default in a virtualenv is "<venv path>/build". The default for global installs is 
          "<OS temp dir>/pip-build-<username>". 

Я хотел бы, чтобы предупредить любые читателей не использовать sudo pip install для установки Django. Он устанавливает всю систему Django. И изменение общесистемной версии может сломать системные пакеты, которые зависят от нее. Например, Ubuntu MAAS и Cobbler зависят от системного пакета django. Обычно это услуги, которые вы не хотите ломать.

Если вам нужна другая версия, чем системный пакет, используйте virtualenv, чтобы изолировать ваши зависимости от системы.

ОП, похоже, находится на OSX, и я не знаю ни одного серверного Mac Django, но это может измениться. Рассмотрите возможность установки пакетов python с sudo по параметру par для изменения установленного системой python с помощью python 3; теперь это может сработать, но у вас есть парацетамол на складе, поскольку у вас есть некоторые головные боли.

+0

на окнах с cygwin, вам нужно оба вышеуказанных флага, чтобы получить пип, чтобы игнорировать кеши. это странный дизайн - можно подумать, что добавление -U и форсирование версии означают, что я действительно хотел эту версию, а не случайную, которая случается в моем кеше. – fastmultiplication

4

Проверьте локальный кеш и удалите его. Я установил pymongo == 2.5.2. Чтобы установить pymongo == 2.4.1, я удаляю кеш в /tmp/pip-build-root/pymongo. Затем я успешно устанавливаю pymongo 2.4.1.

Смежные вопросы