我在一个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`>
我找不到任何标志,触发总包重新下载。我甚至尝试先运行卸载命令,然后再运行安装命令,但没有成功。我遗漏了什么吗?
如果您只想升级一个名为somepackage的特定包,那么您应该在pip的最新版本中使用的命令是
pip install --upgrade --upgrade-strategy only-if-needed somepackage
当你用Django开发一个应用程序,目前只能使用某个特定版本的Django(比如Django=1.9.x),你想升级某个依赖的包,添加bug修复/新特性,而升级后的包依赖于Django(但它可以使用1.5之后的任何版本的Django),这是非常有用的。
pip install——upgrade Django -some-package的默认行为是将Django升级到可用的最新版本,否则可能会破坏你的应用程序,尽管使用——upgrade-strategy only-if-needed依赖包现在只在必要时才会升级。