Python 重置%s后重新加载自动导入
如果我的IPython会话已经运行了太长时间(),我会迫切地Python 重置%s后重新加载自动导入,python,ipython,Python,Ipython,如果我的IPython会话已经运行了太长时间(),我会迫切地退出()并重新启动IPython,以释放该会话中所有变量所占用的内存。然而,重启占用了宝贵的几秒钟,我觉得这很烦人(并不是说我不能学会忍受它,但我不应该这样做) 我发现了一个神奇的函数%reset,它杀死了我所有的变量(耶!),但这样做也杀死了导入到我的命名空间中的名称。其中包括在~/.ipython/profile\u default/startup/00 imports.py中定义的自动导入,这是我希望在ipython会话启动时执行
退出()
并重新启动IPython,以释放该会话中所有变量所占用的内存。然而,重启占用了宝贵的几秒钟,我觉得这很烦人(并不是说我不能学会忍受它,但我不应该这样做)
我发现了一个神奇的函数%reset
,它杀死了我所有的变量(耶!),但这样做也杀死了导入到我的命名空间中的名称。其中包括在~/.ipython/profile\u default/startup/00 imports.py
中定义的自动导入,这是我希望在ipython会话启动时执行的导入
我是否有办法重新运行这些导入(有点像bash中的source
命令);或者更好的是,是否有一个版本的%reset
可以杀死我的变量,但不杀死导入
技术细节:
定义你自己的魔法函数来
- 呼叫重置
- 重新导入导入的内容
%deset
或者类似的
您需要了解的所有内容都是。要获得导入模块的列表,您可以从类型导入模块类型中执行
;[s代表globals()中的s,如果是instance(globals()[s],ModuleType)]
。我想您可以打印格式为import语句和exec
的名称,或者使用\uuuuu import\uuuu(模块名称)
。