Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何使用pip和需求文件升级特定软件包?_Django_Virtualenv_Pip - Fatal编程技术网

Django 如何使用pip和需求文件升级特定软件包?

Django 如何使用pip和需求文件升级特定软件包?,django,virtualenv,pip,Django,Virtualenv,Pip,我在一个virtualenv中为我的Django项目使用带有需求文件的pip。我正在尝试升级一些软件包,尤其是Django本身,但在源代码冲突方面出现了一个错误: /build/Django中的源代码版本1.2.3与Django==1.2.4冲突(来自-r requirements/apps.txt(第3行)) 这是在我的需求文件中将Django的版本号从1.2.3更新为1.2.4之后。我正在使用此命令实际执行升级: pip --install --upgrade -E `<virtual

我在一个virtualenv中为我的Django项目使用带有需求文件的pip。我正在尝试升级一些软件包,尤其是Django本身,但在源代码冲突方面出现了一个错误:

/build/Django中的源代码版本1.2.3与Django==1.2.4冲突(来自-r requirements/apps.txt(第3行))

这是在我的需求文件中将Django的版本号从1.2.3更新为1.2.4之后。我正在使用此命令实际执行升级:

pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
pip--install--upgrade-E`--requirement`

我找不到任何触发重新下载整个包的标志。我甚至尝试先运行卸载命令,然后再安装,但没有成功。我遗漏了什么吗?

首先确保您已经检查过了


我不确定这是否正是您的问题,但在我的情况下,我无法将Django升级到1.2.4-我总是以1.2.3版本完成,因此我卸载了Django,其中包括:

<virtualenv>/bin/pip uninstall Django
/bin/pip卸载Django
然后我删除了
/build/Django
目录,最后安装了正确的版本,包括:

<virtualenv>/bin/pip install Django
/bin/pip安装Django

我运行了以下命令,并将其从1.2.3升级到1.4.0

pip install Django --upgrade
升级的快捷方式:

pip install Django -U

注意:如果要升级的软件包有任何要求,此命令将另外将所有要求升级到可用的最新版本。在pip的最新版本中。使用该标志,依赖项将不会升级,除非依赖项包的安装版本不再满足升级包的要求。

通常情况下,pip将在其自身之后进行清理并删除生成目录的内容。唯一不这样做的情况是:

  • 您使用了
    --no install
    选项
  • 您正在使用可编辑的包
  • 安装被取消或以其他方式中断

  • 在所有其他情况下,您不应该拥有阻塞您的环境的
    生成
    目录。

    用于
    --upgrade
    的快捷命令:

    pip install Django --upgrade
    
    是:

    根据pip示例3:

    pip install --upgrade django
    
    但根据我的经验,使用这种方法也会升级任何与之相关的包。例如:

    假设您想要升级需要
    Django>=1.2.4
    somepackage
    ,使用这种方法,它还将
    somepackage
    Django
    升级到最新更新。为了安全起见,请执行以下操作:

    # Assume you want to keep Django 1.2.4
    pip install --upgrade somepackage django==1.2.4
    

    这样做将升级
    somepackage
    ,并将Django保持在1.2.4版本。

    如果您只想升级一个名为
    somepackage
    的特定软件包,则在pip的最新版本中应使用的命令是

    pip install --upgrade --upgrade-strategy only-if-needed somepackage
    
    当您在Django中开发一个应用程序时,这非常有用,该应用程序目前只能与特定版本的Django(比如Django=1.9.x)一起使用,并且希望使用bug fix/new功能升级某些依赖的包,并且升级的包依赖于Django(但是它可以与1.5之后的任何版本的Django一起使用)


    pip install--upgrade django some package
    的默认行为是将django升级到可用的最新版本,否则可能会破坏您的应用程序,尽管使用
    --仅在需要时升级策略,依赖的包现在只会在必要时升级。

    如果升级包,旧的将被卸载

    一种方便的方法是使用它,它还更新所选软件包(或所有软件包)的
    requirements.txt
    文件中的版本

    安装

    pip install pip-upgrader
    
    用法

    激活(很重要,因为它还将在当前virtualenv中安装升级包的新版本)

    cd
    放入项目目录,然后运行:

    pip-upgrade
    
    高级用法

    如果需求放置在非标准位置,请将其作为参数发送:

    pip-upgrade path/to/requirements.txt
    
    pip-upgrade -p django -p celery -p dateutil
    
    如果您已经知道要升级的软件包,只需将其作为参数发送:

    pip-upgrade path/to/requirements.txt
    
    pip-upgrade -p django -p celery -p dateutil
    
    如果需要升级到发布前/发布后版本,请在命令中添加
    --prerelease
    参数


    完全披露:我写了这个包。

    这为我解决了这个问题:

    pip install -I --upgrade psutil --force
    
    之后,只需卸载带有新版本的psutil,然后您就可以突然安装旧版本(:

    我使用这个:

    pip3 install -r  requirements.txt  
    

    定义要升级的特定版本有助于我,而不仅仅是升级命令

    pip3安装larapy安装程序==0.4.01-U
    
    This for me更新了我所有打包的软件包,把一切都搞砸了!!!!文档说明:--将所有软件包升级到最新的可用版本。这是正确的还是我做错了什么?@OrbiterFleet我需要更新“请求”,所以我做了
    pip安装请求--升级
    并且只升级“请求”已升级。说明中显示“升级所有指定的包”当我查看文档时。注意,它也会更新所有依赖项,可能会搞乱一切。最好的选择是卸载并重新安装包。要升级特定包,请使用
    pip install--upgrade django==1.4.0
    根据问题或问题本身是错误的,这应该是正确答案。编辑exis如何ting answer是否添加此信息而不是(不完整的)答案?@a1an请建议您认为应该在“建议编辑”中添加哪些额外信息.Thanks我的意思是你可以编辑Joey给出的答案,添加你在上下文中提供的快捷方式选项。请检查@dr jimbob的答案,因为最新版本的pip实际上会升级你正在升级的包所依赖的所有其他依赖项。是否有一个选项可以一次升级所有包(即,不列出它们)使用这种方法?@MikePalmice yes:
    pip升级-p all
    将升级您的所有软件包并用o更新需求文件