仅在需要时从文件安装pip
我有一个包文件(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来安装合适的版本。