首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多个环境中正确使用pip冻结>> requirement.txt

如何在多个环境中正确使用pip冻结>> requirement.txt
EN

Stack Overflow用户
提问于 2016-11-09 19:39:55
回答 1查看 2.2K关注 0票数 4

我想了解如何在多个环境中使用pip,我有一个通用的烧瓶web项目,在这里我的生产环境需要pip安装。

代码语言:javascript
复制
pip install flask psycop2 Flask-SQLAlchemy

我的开发和测试环境需要这些和一些额外的东西。

代码语言:javascript
复制
pip install flask psycop2 Flask-SQLAlchemy factory-boy flake8 WebTest 

我知道我可以运行pip freeze >> requirements/dev.txt,然后在同一个文件夹上创建名为prod.txt的文件,剪切并复制其中的所有常见需求,并将-r prod.txt添加到prod.txt中,以便它也安装prod需求。

我的问题是,如何在安装特定的requirement.txt文件时将冻结包打包到特定的flake8-debugger文件--假设接下来我需要flake8-debugger--这显然需要转到dev.txt,那么如何在不对单个文件和包复制粘贴进行恒定冻结的情况下实现呢?

我应该直接将没有版本的flake8-debugger添加到dev.txt并运行pip install -r requirements/dev.txt,还是有一个更优雅的工作流呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 10:50:54

结果,这永远不会在requirements.txt系统上解决,但答案就在这里。

https://github.com/pypa/pipfile

使用新的Pipfile,我们很快就可以管理类似于ruby或npm package.json的需求。

Pipfile

警告:该项目正在积极开发中。

Pipfile是一个新的文件(而且更好!)声明Python环境依赖项的方法(例如部署web应用程序)。它将完全取代普及的requirements.txt文件,目前可以用$ pip安装-r来安装。

这是一个概念项目,一旦API (包括Pipfile本身的形式)被构建并完成,它最终将被构建到pip本身中。

记住,这里的重要部分是Pipfile.lock。它允许确定性的构建。今天的requirements.txt可以做到这一点,而且在没有提供版本说明符时应该这样做,但通常不会这样做。这种努力将提供更令人愉快的用户体验。

概念

will文件将以多种方式优于requirements.txt文件:

表达式式Python语法,用于声明所有类型的Python依赖项。子依赖组(例如测试组)的分组。只使用一个文件将是非常鼓励的。Pipfile.lock示例Pipfile

注意:将有一个默认的源,也可以使用上下文管理器。

代码语言:javascript
复制
source('https://pypi.org/', verify_ssl=True)

package('requests')
package('Django', '==1.6')
package('pinax', git='git://github.com/pinax/pinax.git', ref='1.4', editable=True)
dev_package('nose')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40514705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档