将conda环境包列表存储在笔记本文档中
nbenv的Python项目详细描述
将Conda环境包列表存储在笔记本文档中
这个包为jupyter笔记本提供了一个钩子,它保存关于 笔记本电脑中的conda环境(相当于conda env export)。 每次保存笔记本时。 它还支持使用pip安装在conda环境中的包。
一旦这种jupyter笔记本被共享,另一个用户就可以检查 它运行:
$ nbenv --extract my_notebook.ipynb name: test_input_env channels: - defaults - conda-forge dependencies: - ca-certificates=2017.08.26=h1d4fec5_0 - certifi=2017.7.27.1=py35h19f42a1_0 - decorator=4.1.2=py35h3a268aa_0 - ipykernel=4.6.1=py35h29d130c_0 - ipython=6.1.0=py35h1b71439_1 - ipython_genutils=0.2.0=py35hc9e07d0_0 - jupyter_client=5.1.0=py35h2bff583_0 - pip: - ipython-genutils==0.2.0 - jupyter-client==5.1.0
并重新创建相同的环境(包括安装ipython内核):
$ nbenv my_notebook.ipynb --name reconstructed_env
$ source activate reconstructed_env
$ jupyter notebook
如果笔记本文件被jupyter笔记本会话修改,则将保留环境元数据。 没有安装nbenv。
安装
使用pip install nbenv安装软件包
在中安装jupyter notebook钩子。jupyter/jupyter_notebook config.py:
try:fromnbenvimportsave_conda_environmentc.FileContentsManager.pre_save_hook=save_conda_environmentexceptImportError:print("nbenv package not found: automatic saving of conda environment disabled")
实施细节
保存笔记本前,jupyter笔记本会自动触发预保存挂钩 到磁盘。 它标识正在运行的conda环境,检查kernelspec,然后调用conda env export 并将输出保存在["content"]["metadata"]["conda_environment"]中的.ipynbjson中。
然后,nbenv命令行工具可以将其提取出来并使用conda create到新环境中。
学分
这个包的设计是在Container Analysis Environments Workshop的讨论中构思的。 2017年8月在NCSA举行。
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。