我想使用RISE a.k.a. live_reveal制作交互式幻灯片集(用于在python中进行一些实时编码的演示),这是Jupyter的笔记本扩展。
我希望其他人(以及我未来的自己)可以使用幻灯片,而无需太多的手动步骤(并且不依赖托管的Jupyter解决方案),因此我选择{{1}管理依赖关系。
我可以开始使用
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
步骤以启用RISE扩展,并让Jupyter笔记本中的按钮切换到演示模式。
这可以自动化吗?(没有使用其他工具,如conda,docker,vagrant,make或其他构建系统,......)如果是这样,应该怎么做?自动化?
我可以告诉nbextension
(例如在pipenv
中)在安装软件包后运行这两个命令吗?或者我应该让笔记本(Pipfile
文件)以某种方式加载扩展名吗?
答案 0 :(得分:1)
这超出了pipenv的范围。 Pipenv管理你的 python 环境 - 即安装了哪些软件包 - 实际上没有更多。 (一个例外是.env
文件中的环境变量加载在pipenv run
或pipenv shell
命令上。您在问题中列出的nbextension命令实际上根本不处理python环境,而是移动javascript和css文件(install rise
)并创建(或编辑,如果你安装了其他nbextensions)json配置档案(enable rise
)。
无论好坏,pipenv都没有像postinstall挂钩那样运行任意构建命令。 jupyter似乎没有办法预先打包或自动安装扩展程序,尽管我可能错了。
我个人认为,使这种事情可重复,正是您提到的构建工具非常适合。不使用你提到的那种你不想使用的类型的构建工具,你最好的选择是写一个清晰的自述文件,或者你自己的(记录的)postinstall shell脚本。