das*_*s-g 5 python reproducible-research jupyter-notebook pipenv
我想使用RISE aka live_reveal制作交互式幻灯片集(用于在 Python 中进行一些实时编码的演示),它是 Jupyter 的笔记本扩展。
我希望幻灯片集可供其他人(以及我未来的自己)使用,而无需太多手动步骤(并且不依赖托管的 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
Run Code Online (Sandbox Code Playgroud)
但是,只pipenv install RISE在本地目录(inPipfile和Pipfile.lock)中留下痕迹。因此,当在新机器上(或之后pipenv --rm)使用我的文件时
pipenv install
pipenv run jupyter notebook
Run Code Online (Sandbox Code Playgroud)
不够。必须重复这两个nbextension步骤才能启用 RISE 扩展并让 Jupyter 笔记本中的按钮切换到演示模式。
这可以自动化吗?(不使用额外的工具,如 conda、docker、vagrant、make 或其他构建系统,...)如果是这样,它应该如何自动化?
我可以告诉pipenv(例如 in Pipfile)在安装包后运行这两个命令吗?或者我应该让笔记本(*.ipynb文件)以某种方式加载扩展?
小智 1
这超出了 pipelinev 的范围。Pipenv 管理您的python环境 - 即安装了哪些软件包 - 仅此而已。(一个例外是文件中的环境变量.env加载pipenv run到pipenv shell命令上)。您在问题中列出的 nbextension 命令实际上根本不处理 python 环境,而是移动 javascript 和 css 文件 ( install rise) 并创建(或编辑,如果您安装了其他 nbextensions )json 配置文件 ( enable rise)。
无论好坏,pipenv 没有类似 postinstall hook 之类的东西来运行任意构建命令。jupyter 似乎也没有办法预先打包或自动安装扩展,尽管我对此可能是错的。
我个人的观点是,使此类事情可重复正是您提到的构建工具的最佳用途。如果不使用您提到的您不想使用的构建工具,最好的选择是编写一个清晰的自述文件或您自己的(有记录的)安装后 shell 脚本。
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |