我能阻止pip暗地降低包的级别吗?

2024-10-03 23:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python虚拟环境中安装了django1.10.5。在

不幸的是,当我用pip install djblets将djblets安装到我的virtualenv中时,Django正在被隐式地降级到1.8.17版本。这破坏了我的环境。在

我能做些什么来阻止这一切吗?当然没有人问我是否同意降级。但我真的应该。在

djblets版本0.9.6甚至没有安装,因为它依赖于Pillow,后者拒绝构建。这一切只是破坏和破坏我的环境,因为卸载是第一位的。在

我所能想到的就是在一个单独但完全相同的虚拟环境中进行安装,然后看看会发生什么。就像一次试水。在

现在我必须从头开始安装我的环境。我是错过了什么,还是就这样?在


Tags: installpipdjango版本环境virtualenv虚拟环境降级
1条回答
网友
1楼 · 发布于 2024-10-03 23:23:17

您需要同时安装两个软件包(仅使用一个命令),并指定软件包的版本号

pip install django==1.10.5 djblets

根据经验,我建议使用requirements.txt文件,而不是逐个安装软件包。在

对于您的示例,您的文件requirements.txt将(至少)具有:

^{pr2}$

然后,您可以使用pip^{}选项一次性安装所有软件包:

^{3}$

为什么?

除非如此,否则,pip将尝试为给定的模块安装最佳的依赖项(包本身中描述的那些),甚至可以降级包!在

通常,您将无法选择降级或升级包以使其正常工作。这就是为什么在你需要的每个包中放一个版本号以避免回归是非常重要的!在

提示

(确定,因为update选项仅适用于具有未指定版本号的包)

  • 您也可以使用pip的选项^{}安装一个完全没有依赖关系的包:

    pip install  no-deps djblets
    

但此方法只有在已安装所有依赖项的情况下才有效。在

奖金

为了回答您没有问的问题,如果您害怕做错误的操作,可以使用pip freeze对所有安装的包进行“快照”

pip freeze > requirements.txt

相关问题 更多 >