python - 重新加载 Jupyter Lab 中已更改的模块的最佳方法?

标签 python ipython jupyter

问题:我喜欢在 jupyter 中保持 ipython 笔记本干净,并将实用函数放在外部文件中保存,但一旦编写完毕,就根据需要从笔记本中调用它们。

问题是,一旦我将完成的函数移至外部文件,我必须终止内核并重新运行所有内容才能导入它!

我尝试过正常的操作:

%load_ext autoreload
%autoreload 2

但似乎不起作用。

还有更好的建议吗?

最佳答案

您可以使用神奇功能%run <filename>您在其中定义了实用函数。

当我编写新的实用函数并希望在 jupyter 笔记本中测试和改进它们而无需每次都重新启动整个过程时,我对此很有用。查看 Jake VanderPlas 的 IPython Magic Commands 章节

详细信息:

我有一个名为 utils.py 的文件在名为 c:/jupytertest 的文件夹中.

Utils.py:

import pandas as pd

def framer(df):
    df_out = df['parch'].to_frame()
    return(df_out)

我在 jupyter 笔记本单元中有以下内容:

# standard imports
import os
import pandas as pd
os.chdir('C:/jupytertest/')

# run / reload utils
%run utils.py

# data
url = "https://raw.github.com/mattdelhey/kaggle-titanic/master/Data/train.csv"
titanic = pd.read_csv(url)

# test reloading of function from utils.py
values = framer(titanic)

print(values.tail(5))

现在每次我改变df_out = df['parch'].to_frame()name或者我知道泰坦尼克号数据集中存在的任何其他列,要在 jupyter 中应用更新的函数,我唯一要做的就是保存 utils.py并重新运行笔记本中的单元。

笔记本中不需要重新启动内核。

查看IPython Magic Commands有关更多详细信息,请参阅 Jake VanderPlas 编写的《Python 数据科学手册》。

关于python - 重新加载 Jupyter Lab 中已更改的模块的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59925424/

相关文章:

python - 找不到Jupyter命令 `jupyter-lab`

python - 如何在不使用后端函数的情况下在keras中编写自定义函数?

python - 在具有相同键的字典中合并两个 Python 字典

python - 我的脚本需要同时运行两个循环来读取来自两个不同来源的 IO 数据。我的线程正确吗?

google-chrome - IPython Notebook使Chrome标签页崩溃

knitr - Jupyter 中的 R-markdown .Rmd 或 knitr markdown

python - 如何让 pip 递归搜索包和依赖项的目录?

python - 如何增加 Jupyter notebook 内存限制?

python - 在ipython笔记本中,如何实现隐藏所有源代码和编辑按钮的 "single cell"样式?

python - Xgboost 适用于 pycharm,但不适用于 Jupyter NoteBook