我想了解如何在多个环境中使用pip,我有一个通用的烧瓶web项目,在这里我的生产环境需要pip安装。
pip install flask psycop2 Flask-SQLAlchemy我的开发和测试环境需要这些和一些额外的东西。
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,还是有一个更优雅的工作流呢?
发布于 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
注意:将有一个默认的源,也可以使用上下文管理器。
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')https://stackoverflow.com/questions/40514705
复制相似问题