帮助创建和维护pip冻结需求的脚本
freeze-requirements的Python项目详细描述
冻结要求
帮助创建和维护pip冻结需求的脚本 由这个Mozilla dev team blog post。
冻结的需求包含您指定的包,以及 依赖项,具有固定版本。
例如,如果有requirements.txt包含以下内容:
pyramid sqlalchemy
冻结版本为:
# This file has been automatically generated, DO NOT EDIT! # Frozen requirements for "requirements.txt" pastedeploy==1.5.2 pyramid==1.5.1 repoze.lru==0.6 setuptools==5.5.1 sqlalchemy==0.9.7 translationstring==1.1 venusian==1.0 webob==1.4 zope.deprecation==4.1.1 zope.interface==4.1.1
然后,您可以在部署脚本中使用pip install -rrequirements-frozen.txt--no-deps冻结的需求,并享受一致性 即使在pypi上更新了一些包,也可以进行部署。
冻结需求还可以将下载的源程序包放在类似pypi的 Web服务器上的目录结构,以便加快部署速度 使用pip install -rrequirements-frozen.txt--index-urlhttp://mywebserver.com/pypi-mirror,还可以构建wheels来加速部署。
安装
从pypi安装:
$ pip install freeze-requirements
或来源:
$ ./setup.py install
示例
创建两个需求文件的冻结版本(它们将被命名为 requirements-frozen.txt和requirements2-frozen.txt在本例中, 可以使用--separate-requirements-suffix自定义-frozen后缀:
$ freeze-requirements freeze --separate-requirements requirements.txt requirements2.txt
将多个需求合并到一个文件中:
$ freeze-requirements freeze --merged-requirements requirements-merged.txt requirements.txt requirements2.txt
使用缓存避免重新处理已知的需求文件:
$ freeze-requirements freeze --cache-dependencies requirements.txt
下载源代码包并为它们构建轮子,将它们放入类似pypi的 目录结构:
$ freeze-requirements freeze --output-dir /path/to/my/pypi --build-wheels requirements.txt
新闻
0.4.4
为setup.py中包含非字符串版本的包添加了解决方法 (Bug是由UnitTest2 0.7.1引起的,请参见 https://code.google.com/p/unittest-ext/issues/detail?id=84)。
0.4.3
添加了自动冲突解决。
0.4.2
已添加–无重建控制盘标志,以避免重建中已存在的控制盘 –输出目录。
0.4.1
首次正确释放