python - 应该如何安装和启用 Jupyter 扩展以使其可重现?

标签 python jupyter-notebook reproducible-research pipenv

我想用 RISE 制作交互式幻灯片集(用于用 python 进行一些实时编码的演示)又名 live_reveal,它是 Jupyter 的笔记本扩展。

我希望其他人(以及我 future 的自己)无需太多手动步骤(并且不依赖托管的 Jupyter 解决方案)即可使用幻灯片集,因此我选择了 pipenv管理依赖关系。

我可以开始

pipenv install RISE
pipenv run jupyter nbextension install rise --py --sys-prefix
pipenv run jupyter nbextension enable rise --py --sys-prefix
pipenv run jupyter notebook  # to start the jupyter server

但是,只有pipenv install RISE在本地目录(在PipfilePipfile.lock中)留下痕迹。因此,当在新机器上(或在 pipenv --rm 之后)使用我的文件时

pipenv install
pipenv run jupyter notebook

还不够。 必须重复这两个 nbextension 步骤以启用 RISE 扩展并在 Jupyter 笔记本中提供按钮以切换到演示模式。

这可以自动化吗?(使用额外的工具,如 conda、docker、vagrant、make 或其他构建系统,...)如果可以,应该如何自动化?

我可以告诉 pipenv(例如在 Pipfile 中)在安装包后运行这两个命令吗?或者我应该让笔记本(*.ipynb 文件)以某种方式加载扩展吗?

最佳答案

这超出了 pipenv 的范围。 Pipenv 管理您的 python 环境——即安装了哪些包——仅此而已。 (一个异常(exception)是 .env 文件中的环境变量在 pipenv runpipenv shell 命令上加载)。您在问题中列出的 nbextension 命令实际上根本不处理 python 环境,而是移动 javascript 和 css 文件(install rise)并创建(或编辑,如果您安装了其他 nbextensions ) 一个 json 配置文件(enable rise)。

无论好坏,pipenv 都没有像安装后 Hook 这样的东西来运行任意构建命令。 jupyter 似乎也没有预打包或自动安装扩展的方法,尽管我对此可能是错误的。

我个人的看法是,使这类事情可重复正是您提到的构建工具的大用处。如果不使用您提到的那种您宁愿不使用的构建工具,您最好的选择是编写一个清晰的自述文件或者您自己的(记录的)安装后 shell 脚本。

关于python - 应该如何安装和启用 Jupyter 扩展以使其可重现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48623274/

相关文章:

python - 使用冒号表示法选择 NumPy 数组中的特定列

python - Xlwings 将 Excel 范围保存为 Python 列表

python - Django 元组检查 : TEMPLATE_DIRS should be tuple?

r - 一种在knitr中复制 block 的方法?

python - 当匹配旧输出中的字符串时,pexpect python 模块的expect方法会中断

IPython 交互式幻灯片?

python - Jupyter Notebooks 无法识别文件/目录; CPLE-打开失败错误;驱动程序错误

python - 配置 Spark 以使用 Jupyter Notebook 和 Anaconda

r - 用于在可重复研究中格式化数值的包

r - 使用插入符号完全可重现的并行模型