jupyter notebook 版本管理

本文介绍了如何使用Jupyter Notebook的配置文件设置,通过post-save钩子自动将.ipynb文件转换为.py文件,以便于使用Git进行版本控制。通过编辑生成的配置文件,添加转换和清理代码,可以移除#.In[]:编号,从而更好地管理和跟踪代码变更。
摘要由CSDN通过智能技术生成

Jupyter Notebook本身不适合用Git进行版本控制,可以将notebook转成python脚本

生成配置文件

运行命令,生成配置文件~/.jupyter/ipython_notebook_config.py

jupyter notebook --generate-config

返回配置文件所在路径,如

Writing default config to: C:\Users\simon.jupyter\jupyter_notebook_config.py

编辑配置文件

在生成的文件中添加,便于通过 post-save 的钩子自动将 .ipynb 文件转换成 .py 文件,生成的.py文件就可以用git进行版本管理了,jupyter中可以用!git status的形式运行系统命令。

### If you want to auto-save .html and .py versions of your notebook:
# modified from: https://github.com/ipython/ipython/issues/8009
# Solution2: https://jupyter-notebook.readthedocs.io/en/stable/extending/savehooks.html
import os
from subprocess import check_call
import re

def clear_prompt(dir_path, nb_fname, log_func):
    """remove the number in '# In[ ]:'"""
    name, ext = os.path.splitext(nb_fname)
    pattern = re.compile(r'^# In\[\d+\]:')

    for n_ext in ['.py', '.txt']:
        script_name = os.path.join(dir_path, name+n_ext)
        if os.path.exists(script_name):
            new_lines = []
            with open(script_name, 'rt') as f:
                lines = f.readlines()
            for line in lines:
                new_line = re.sub(pattern, '# In[ ]:', line)
                new_lines.append(new_line)
            with open(script_name, 'wt') as f:
                f.writelines(new_lines)
            log_func('Remove number in "# In[ ]:"! File Name: %s' % script_name)
            break

def post_save(model, os_path, contents_manager):
    """post-save hook for converting notebooks to .py scripts"""
    if model['type'] != 'notebook':
        return # only do this for notebooks
    d, fname = os.path.split(os_path)
    check_call(['jupyter', 'nbconvert', '--to', 'script', fname], cwd=d)  # '--no-prompt',
    log = contents_manager.log
    # log.info('Filename:%s'%fname)
    clear_prompt(d, fname, log.info)
    # check_call(['ipython', 'nbconvert', '--to', 'html', fname], cwd=d)

c.FileContentsManager.post_save_hook = post_save

参考

  1. Jupyter Notebook版本控制
  2. Python更改ipython notebook的默认工作路径
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修改Jupyter Notebook版本,通常意味着您想从当前安装的版本升级到更新的版本,或是降级到较旧的版本。以下是如何操作的具体步骤: ### 升级Jupyter Notebook 1. **验证当前版本**: 首先确认您的Python环境中已安装的Jupyter Notebook版本。打开命令行工具或终端,输入以下命令: ``` python -m pip show jupyter ``` 输出将显示Jupyter Notebook的详细信息,包括版本。 2. **更新pip**: 如果您的`pip`已经过时,应首先更新它。在大多数系统上,可以运行: ``` python -m pip install --upgrade pip ``` 3. **升级Jupyter Notebook**: 使用`pip`升级到最新版Jupyter Notebook,运行: ``` python -m pip install --upgrade jupyter ``` 4. **验证新版本**: 更新完成后,再次检查版本以确认是否成功升级: ``` python -m pip show jupyter ``` ### 降级Jupyter Notebook 若需要降级至特定版本Jupyter Notebook,可以指定版本号并进行安装。假设您希望降级至版本1.0.0(请替换为您实际所需的版本),可以运行: ``` python -m pip install jupyter==1.0.0 ``` 同样,在降级之前也要确保通过检查当前版本来了解实际情况,并确认目标版本在您的系统兼容范围内。 ### 注意事项 - 确保您的系统环境能够支持所选择的新版本,尤其是在涉及到依赖库方面。 - 考虑备份当前项目及其虚拟环境,以防在版本升级过程中出现问题。 - 版本升级或降级之后,如果遇到问题,检查官方文档或社区讨论区,可能存在已知问题及解决方案。 --- --- 相关问题 --- 1. Jupyter Notebook 的核心功能是什么? 2. 如何在 Anaconda 环境中管理 Jupyter Notebook 安装? 3. 在 Linux 上如何安全地卸载现有的 Jupyter Notebook
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值