nixml:nix+yaml的可重复环境
nixml的Python项目详细描述
nix-ml:使用nix+yaml的简单、可重复的环境
简单,完全可复制,环境中有nix 使用yaml文件指定。
例如,写入名为env.nml
:
nixml: v0.0
snapshot: stable-19.03
packages:
- lang: python
version: 2
modules:
- numpy
- scipy
- matplotlib
- mahotas
- jupyter
- scikitlearn
现在,运行
nixml shell
您将被放到包含所列包的环境中 以上,截至2019年3月。从概念上讲,环境将 总是从头开始生成,但是缓存意味着第一次 需要更长的时间(包括下载所有依赖项)。 之后,最多需要几秒钟。
这个环境就像一个典型的conda/pip/virtualenv/……环境:
if将在PATH
前面放置相应的二进制文件,以便
它们具有高优先级,但是,您也可以生成
pure environment,它将只包含指定的包。
这样可以避免意外使用不属于环境的软件包:
nixml shell --pure
最后,您可以运行
nixml generate
创建与环境相对应的nixml.nix
。
依赖关系
- Python
- nix
nixml格式
这是一个yaml文件
nixml
:要使用的nixml版本。目前,只支持v0.0
。
snapshot
:这是要使用的包版本。目前,只有stable-19.03
可用,但一般语法为{stable,unstable}-{year}.{month}
。
packages
:包的列表,这些包被分组到语言块中。
当前支持:
python
:python语言环境,指定版本(version
)和modules
。texlive
:texlive包nix
:通用包(即vim
或bash
)
作者
- Luis Pedro Coelho(电子邮件:luis@luispedro.org在twitter上:@luispedrocoelho)