pip install:如何强制特定的包版本

时间:2013-03-28 19:31:20

标签: django pip

我正在尝试安装Django 1.4.3,但是当我执行pip install时,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...

但如果我执行pip冻结,它会一直显示

的Django == 1.5

我做错了什么?

谢谢

3 个答案:

答案 0 :(得分:17)

这可以/应该/可以通过在pip中清除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时未指定新的构建文件夹,则执行此操作。

祝你好运!

答案 1 :(得分: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将您的依赖项与系统隔离开来。

OP似乎是在OSX上,我不知道任何服务器级的Mac Django,但这可能会改变。考虑安装带有sudo的python包,用python 3更改系统安装的python;它可能现在可以使用,但有一些扑热息痛库存,因为你有些头痛。

答案 2 :(得分:4)

检查您的本地缓存并删除它可以提供帮助。我hava安装了pymongo == 2.5.2。要安装pymongo == 2.4.1,我删除了/tmp/pip-build-root/pymongo中的缓存。然后我成功安装了pymongo 2.4.1。