Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 重置%s后重新加载自动导入_Python_Ipython - Fatal编程技术网

Python 重置%s后重新加载自动导入

Python 重置%s后重新加载自动导入,python,ipython,Python,Ipython,如果我的IPython会话已经运行了太长时间(),我会迫切地退出()并重新启动IPython,以释放该会话中所有变量所占用的内存。然而,重启占用了宝贵的几秒钟,我觉得这很烦人(并不是说我不能学会忍受它,但我不应该这样做) 我发现了一个神奇的函数%reset,它杀死了我所有的变量(耶!),但这样做也杀死了导入到我的命名空间中的名称。其中包括在~/.ipython/profile\u default/startup/00 imports.py中定义的自动导入,这是我希望在ipython会话启动时执行

如果我的IPython会话已经运行了太长时间(),我会迫切地
退出()
并重新启动IPython,以释放该会话中所有变量所占用的内存。然而,重启占用了宝贵的几秒钟,我觉得这很烦人(并不是说我不能学会忍受它,但我不应该这样做)

我发现了一个神奇的函数
%reset
,它杀死了我所有的变量(耶!),但这样做也杀死了导入到我的命名空间中的名称。其中包括在
~/.ipython/profile\u default/startup/00 imports.py
中定义的自动导入,这是我希望在ipython会话启动时执行的导入

我是否有办法重新运行这些导入(有点像bash中的
source
命令);或者更好的是,是否有一个版本的
%reset
可以杀死我的变量,但不杀死导入

技术细节

  • IPython版本:0.13.1
  • 操作系统:MAC OS X 10.7.5(Lion)

  • 定义你自己的魔法函数来

    • 呼叫重置
    • 重新导入导入的内容
    你可以称之为

    %deset
    
    或者类似的


    您需要了解的所有内容都是。

    要获得导入模块的列表,您可以从类型导入模块类型中执行
    ;[s代表globals()中的s,如果是instance(globals()[s],ModuleType)]
    。我想您可以打印格式为import语句和
    exec
    的名称,或者使用
    \uuuuu import\uuuu(模块名称)