2013-03-28 246 views
27

我试图安装Django 1.4.3,但是当我执行点子安装,PIP一直安装Django的1.5版本,而不是1.4.3PIP安装:如何强制特定的软件包的版本

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... 

,但如果我执行画中画冻结,它不断显示

Django的== 1.5

我在做什么错?

谢谢

+0

愚蠢的问题,但你有没有试过卸载Django的所有版本,然后运行你的命令? – NT3RP

+0

是的,我做了,并没有工作。我也可以选择下载软件包并手动安装它,但我想知道是否有一个选项在点子,以避免这种行为,并强制1.4.3版本 – kothvandir

+0

你只试过'pip install Django == 1.4.3 ' – catherine

回答

17

这可能/应该/可以通过PIP清理build目录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版本,与'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将您的依赖关系与系统隔离。

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

+0

与cygwin的窗户上,您需要上述两个标志来让pip忽略缓存。这是一个奇怪的设计 - 人们会认为添加-U和强制版本意味着我真的想要这个版本,而不是随机的版本在我的缓存中。 – fastmultiplication

4

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