Подтвердить что ты не робот

Pip install: как заставить определенную версию пакета

Я пытаюсь установить Django 1.4.3, но когда я выполняю установку pip, pip продолжает устанавливать версию 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

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

Спасибо

4b9b3361

Ответ 1

Это может/должно/может быть помогло, очистив dir для Django в pip. Для этого есть ошибка, так как версия 1.1 подробнее см. Здесь

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

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

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

Удачи!

Ответ 2

Как limelight говорит, вы должны очистить свои файлы кэша и сборки, или пройти во временном чистом месте с помощью --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, чтобы изолировать ваши зависимости от системы.

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

Ответ 3

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