Python 重新加载Jupyter实验室中已更改的模块的最佳方法?
问题:我喜欢保持jupyter中的ipython笔记本干净,并将实用程序函数放在外部文件中保存,但一旦写入,就可以根据需要从笔记本中调用它们 问题是,一旦我将已完成的函数移动到外部文件,我就必须杀死内核并重新运行所有操作以导入它 我试过做正常的事情:Python 重新加载Jupyter实验室中已更改的模块的最佳方法?,python,ipython,jupyter,Python,Ipython,Jupyter,问题:我喜欢保持jupyter中的ipython笔记本干净,并将实用程序函数放在外部文件中保存,但一旦写入,就可以根据需要从笔记本中调用它们 问题是,一旦我将已完成的函数移动到外部文件,我就必须杀死内核并重新运行所有操作以导入它 我试过做正常的事情: %load_ext autoreload %autoreload 2 但它似乎不起作用 有更好的建议吗?您可以使用魔法函数%run来定义实用程序函数 当我在编写新的实用程序函数,并希望在jupyter笔记本中测试和改进它们时,我对这一点非常有用,
%load_ext autoreload
%autoreload 2
但它似乎不起作用
有更好的建议吗?您可以使用魔法函数
%run
来定义实用程序函数
当我在编写新的实用程序函数,并希望在jupyter笔记本中测试和改进它们时,我对这一点非常有用,而不必每次都重新启动整个程序。查看杰克·范德普拉斯的《伊皮顿魔法命令》一章
详细信息:
import pandas as pd
def framer(df):
df_out = df['parch'].to_frame()
return(df_out)
我在名为c:/jupytertest
的文件夹中有一个名为utils.py
的文件
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'].改为_frame()
改为name
或我知道的泰坦尼克号数据集中存在的任何其他列时,我要做的唯一一件事就是在jupyter中应用最新的函数,就是保存utils.py
并重新运行笔记本中的单元格
不需要在笔记本中重新启动内核
查看Jake VanderPlas的Python数据科学手册,了解更多详细信息。您可以在定义了实用程序函数的地方使用magic function
%run
当我在编写新的实用程序函数,并希望在jupyter笔记本中测试和改进它们时,我对这一点非常有用,而不必每次都重新启动整个程序。查看杰克·范德普拉斯的《伊皮顿魔法命令》一章
详细信息:
import pandas as pd
def framer(df):
df_out = df['parch'].to_frame()
return(df_out)
我在名为c:/jupytertest
的文件夹中有一个名为utils.py
的文件
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'].改为_frame()
改为name
或我知道的泰坦尼克号数据集中存在的任何其他列时,我要做的唯一一件事就是在jupyter中应用最新的函数,就是保存utils.py
并重新运行笔记本中的单元格
不需要在笔记本中重新启动内核
查看Jake VanderPlas的Python数据科学手册,了解更多详细信息。
autoreload
对我来说也是坏的,尽管我记得大约一年前它曾经工作过(我有一句话,!ninja-C模块目录
/%reload mymodule
。它目前功能不正常。@lollercoaster我的建议对你有什么作用?自动加载
对我来说也不适用,尽管我记得大约一年前它曾经工作过(我有一行代码)!ninja-C模块目录
/%reload mymodule
。它目前功能不正常。@lollercoaster我的建议对你有什么作用?