我在分析过程中创建了许多不同的笔记本。但是,每个笔记本都以相同的导入和其他语句开头。通常,以下代码行是我对第一个单元格的标准输入:
import pandas as pd
import numpy as np
.. otherimports
import sys
sys.path.append('../..')
... more imports from this directory
%matplotlib inline
%load_ext autoreload
%autoreload 2
我已经厌倦了复制粘贴或手动为每个笔记本键入这些内容,现在我正在尝试找到一种自动执行此操作的方式。
我查看了ipython扩展,所以我可以调用
%load_ext setup_analysis
但无法使用此类ipython扩展程序有效地将内容导入用户环境。扩展正在运行,但扩展文件中的导入不会导入到笔记本内核中(这是有意义的)。我尝试将交互式shell对象与user_expressions结合使用,但也没有用。
我的问题是:自动化此标准单元格的最简单方法是什么,如果要进行扩展,我该如何从这样的扩展中进行导入(以及相关的魔术函数)?
答案 0 :(得分:0)
修复它:
可能有点做作,但它确实有效,所以我很高兴。将此留给那些希望让生活更轻松的未来人们。
解决方案:
按照these instructions跟随这些说明进行ipython扩展。
在此扩展程序的.py文件中,我编写了以下代码:
def instructions():
inst = """
import pandas as pd
... other imports
sys.path.append('../..')
... more imports
"""
return inst
def load_ipython_extension(ipython):
compiled_file = "prep_log.py"
code = compile(instructions(), compiled_file, 'exec')
ipython.run_code(code)
ipython.run_line_magic("matplotlib", "inline")
ipython.run_line_magic("load_ext", "autoreload")
ipython.run_line_magic("autoreload", "2")
现在我的笔记本顶部有%load_ext准备工作,我已经准备好了:)。