我想用 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
在本地目录(在Pipfile
和Pipfile.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 run
或 pipenv shell
命令上加载)。您在问题中列出的 nbextension 命令实际上根本不处理 python 环境,而是移动 javascript 和 css 文件(install rise
)并创建(或编辑,如果您安装了其他 nbextensions ) 一个 json 配置文件(enable rise
)。
无论好坏,pipenv 都没有像安装后 Hook 这样的东西来运行任意构建命令。 jupyter 似乎也没有预打包或自动安装扩展的方法,尽管我对此可能是错误的。
我个人的看法是,使这类事情可重复正是您提到的构建工具的大用处。如果不使用您提到的那种您宁愿不使用的构建工具,您最好的选择是编写一个清晰的自述文件或者您自己的(记录的)安装后 shell 脚本。
关于python - 应该如何安装和启用 Jupyter 扩展以使其可重现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48623274/