san*_*tar 6 git github jupyter-notebook
我喜欢我的 github 存储库包含 py 文件而不是 ipynb 文件,但我更喜欢在做项目时使用 Jupyter。
理想情况下,我希望通过以下方式开展我的项目:
有没有办法执行此“更新 py 文件”操作,而无需手动将我的笔记本下载到 py 文件中,将我在“下载”文件夹中下载的 py 文件拖到我的工作目录中并手动替换之前现有的 py 文件终于做出承诺了吗?它看起来很不干净。
也许我也应该将我的 ipynb 放在存储库中,这样我就可以确保当我拉出笔记本时,笔记本是最新的并且与 py 文件完全相同?但我希望它对公众隐藏。
我只是希望能够使事情像仅使用 py 文件一样无缝,同时在 Jupyter 中进行实际工作,然后为公众提供最终代码为 py 文件,但我希望相对流畅地完成此操作,而无需大量手动操作拖放文件并替换旧文件。有点破坏了使用 git 的意义,因为我不再“优雅地”使用版本控制。
是的。jupytext可以通过所谓的“配对笔记本.ipynb”为您保持文件同步,只要您在受支持的客户端之一(例如 Jupyter Notebook 或 JupyterLab)中编辑这些文件即可。.py
.ipynb或者,您可以配置预提交 git hook 以在.py每次提交之前运行 jupytext 转换,这在此处记录。简而言之,您需要安装预提交- 例如:
pip install pre-commit
Run Code Online (Sandbox Code Playgroud)
然后.pre-commit-config.yaml使用以下命令创建/修改:
repos:
- repo: https://github.com/mwouts/jupytext
rev: v1.11.2 # (replace with the latest stable version)
hooks:
- id: jupytext
args: [--from, ipynb, --to, "py"]
Run Code Online (Sandbox Code Playgroud)
如果您不想依赖 jupytext,也可以使用内置的 jupyter 转换功能配置预提交挂钩,但这将提供更少的配置选项