我在一个virtualenv中使用pip和一个需求文件,用于我的Django项目。我试图升级一些包,特别是Django本身,我得到了一个关于源代码冲突的错误:
<virtualenv>/build/Django的1.2.3版本与Django==1.2.4冲突(from -r requirements/apps.txt(第3行))
这是在我的需求文件中把Django的版本号从1.2.3更新到1.2.4之后。我使用这个命令来实际执行升级:
pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>
我找不到任何标志,触发总包重新下载。我甚至尝试先运行卸载命令,然后再运行安装命令,但没有成功。我遗漏了什么吗?
如果升级一个包,旧的包会被卸载。
一种方便的方法是使用这个pip-upgrader,它也更新您的requirements.txt文件中所选包(或所有包)的版本。
安装
pip install pip-upgrader
使用
激活您的virtualenv(这很重要,因为它还将在当前的virtualenv中安装升级包的新版本)。
CD到你的项目目录,然后运行:
pip-upgrade
高级用法
如果需求被放置在一个非标准的位置,将它们作为参数发送:
pip-upgrade path/to/requirements.txt
如果你已经知道要升级什么包,只需将它们作为参数发送:
pip-upgrade -p django -p celery -p dateutil
如果需要升级到预发布/后发布版本,请在命令中添加——pre-release参数。
完全披露:这个包是我写的。