仅在需要时从文件安装pip

0 投票
1 回答
1131 浏览
提问于 2025-04-18 15:27

我有一个包文件(dependencies.conf),里面列出了我应用需要的一堆包:

argparse==1.2.1
Cython==0.20.2
...

在我的构建过程中,我使用以下命令下载所有的包:

pip install --download=build/modules -r conf/dependencies.conf

然后在部署过程中,我想要安装这些包,前提是已安装的版本和我需要的版本不一样,并且要按照正确的顺序(依赖关系)来安装。

我现在使用的是以下命令:

for f in modules/*; do pip install -I $f; done

但这样做是不对的,因为它没有验证版本(-I这个选项是为了在需要时降级包),而且也没有处理依赖关系的正确顺序。

有没有简单的方法可以做到这一点?(我基本上是在尝试更新那些没有互联网连接的机器上的包)

1 个回答

0

使用PIP获取版本,可以通过以下命令来实现:

例如:pip freeze | grep Jinja2
Jinja2==2.6

具体的解释可以参考这个链接 查找使用pip安装的包的版本

然后将这个版本与需要的版本进行比较,如果有必要,就运行pip install来安装合适的版本。

撰写回答