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

kot*_*dir 28 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...
Run Code Online (Sandbox Code Playgroud)

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

Django的== 1.5

我究竟做错了什么?

谢谢

Hen*_*son 16

这可以/应该/可以通过在pip中清除Django的构建目录来帮助.这是一个错误,因为版本1.1 请参阅此处了解详细信息

如果您使用的是OS X或类似unix的系统,则可以在此处开始检查这些文件夹:

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

这是在安装第一个版本的Django时未指定新的构建文件夹的情况.

祝好运!


Chr*_*ing 8

正如众人所说,你应该清空缓存并构建目录,或者使用--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>".
Run Code Online (Sandbox Code Playgroud)

我想警告任何读者不要使用sudo pip install安装Django.它在系统范围内安装Django.而更改系统范围的版本可能会破坏依赖它的系统包.例如,Ubuntu MAAS和Cobbler依赖于系统django包.这些通常是您不想破坏的服务.

如果您需要与system-package不同的版本,请使用virtualenv将依赖项与系统隔离.

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


小智 5

检查本地缓存并将其删除可能会有所帮助。我已经安装了 pymongo==2.5.2。要安装 pymongo==2.4.1,我删除了 /tmp/pip-build-root/pymongo 中的缓存。然后我成功安装了 pymongo 2.4.1。