Skip to main content

帮助创建和维护 pip 冻结需求的脚本

项目描述

冻结要求

受此Mozilla 开发团队博客文章的启发,帮助创建和维护冻结的 pip 需求的脚本。

冻结的需求包含您指定的包,以及它们的所有依赖项,以及固定版本。

例如,如果您的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 -r requirements-frozen.txt --no-deps在部署脚本中使用冻结的需求,即使某些包在 pypi 上更新,也可以享受一致的部署。

freeze-requirements 还可以将下载的源包放在您的 Web 服务器上的类似 pypi 的目录结构中,因此您可以使用pip install -r requirements-frozen.txt --index-url http://mywebserver 加快部署。 com/pypi-mirror,并且还构建轮子以进一步加快部署速度。

安装

从 pypi 安装:

$ pip install freeze-requirements

或来自来源:

$ ./setup.py install

例子

创建两个需求文件的冻结版本( 在本例中它们将被命名为requirements-frozen.txtrequirements2-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 中为具有非字符串版本的软件包添加了解决方法(错误是由 unittest2 0.7.1 引起的,请参阅 https://code.google.com/p/unittest-ext/issues/detail?id=84)。

0.4.3

添加了自动冲突解决。

0.4.2

添加了 –no-rebuild-wheels 标志,以避免重建已经存在于 –output-dir 中的轮子。

0.4.1

第一次正确释放

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

freeze-requirements-0.5.3.tar.gz (11.7 kB 查看哈希

已上传 source