帮助创建和维护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.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中包含非字符串版本的包添加了解决方法 (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

首次正确释放

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何按专辑中曲目的数量过滤这些歌曲   JavaSWT:如何从动作创建普通按钮   java如何使用具有此特定公式的未排序数组实现二叉搜索树?   java PDFBox 2.0.4:提取图像时内存使用率高   java无法实例化类型集   JavaSpring服务周期性任务   java如何在用户打开活动时发出网络请求,但前提是自上次请求已过24小时?   c#如何从Hibernate/NHibernate中的值对象引用实体?   在命令行上运行java时,显示sql server错误消息“java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerDriver”   java数据提供者和断言   java模运算符未给出正确的结果   如何将Eclipse java项目部署到jar文件中   java动态规划问题“以输入价格购买玩家后,总评分必须最高”   java我必须为数组的每个元素制作getter setter吗?   未调用java JUnit RunListener   java如何计算加入多播socket的客户端?