问题:我喜欢在 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/