【问题标题】:pip install -r requirements.txt installs django instead of upgading itpip install -r requirements.txt 安装 django 而不是升级它
【发布时间】:2013-09-08 09:05:00
【问题描述】:

我使用 pip freeze --local 创建了 requirements.txt 文件

现在,当我这样做时:pip install -r requirements.txt

它在旧版本之上安装新的 django。 然后,我收到消息:

========
WARNING!
========

You have just installed Django over top of an existing
installation, without removing it first. Because of this,
your install may now include extraneous files from a
previous version that have since been removed from
Django. This is known to cause a variety of problems. You
should manually remove the

/usr/local/lib/python2.7/site-packages/django

directory and re-install Django.

如果我安装了旧版本,我希望它进行升级。我该如何处理?

【问题讨论】:

    标签: django installation virtualenv pip


    【解决方案1】:

    从 virtualenv 标签我假设你正在使用 virtualenv,它是用 --system-site-packages 选项创建的。如果这是真的,这就是您看到警告的原因。您在 /usr/local/lib/python2.7/site-packages/django 中安装了全局 django,在 virtualenv 中安装了本地。

    如果我没记错的话,您可以通过将空的 no-global-site-packages.txt 文件添加到 virtualenv 中的 lib 目录来忽略全局包。

    或者,您可以使用默认设置创建新的 virtualenv(这意味着 --no-site-packages 选项)。

    【讨论】:

    • 同意后面的,新建一个virtualenv。这似乎不是问题,但也要确保永远不要将 sudo 与 virtualenv 一起使用——不是在创建 venv 时,也不是在执行 pip install 时。
    • 不幸的是,以上方法都不适合我。我创建了没有选项的 virtualenv,所以 no-global-site-packages.txt 文件存在于 lib/pythonX.Y/ 目录中。但是,在获取了我的 virtualenv activate 文件并取消设置 PYTHONPATH 之后,我在执行 pip install -r requirements.txt 时仍然收到有关旧 Django 版本的警告。
    • 你试过从解释器检查你的路径吗?我的意思是:import sys, sys.path
    【解决方案2】:

    这应该可以解决问题:

    pip install --upgrade django
    

    【讨论】:

    • 我想使用pip freeze创建的requirements.txt文件进行自动环境安装。
    猜你喜欢
    • 2021-02-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2018-12-29
    相关资源
    最近更新 更多