2014-03-05 57 views
2

我發現了以下文章:Timing and Profiling in IPython從2013年3月開始,但我在定義和使用魔法時遇到問題。我想知道這是否是因爲文章中的一些信息不再適用。IPython 2.x中的時序和剖析

我所做的:

$ pip install line-profiler 
$ pip install psutil 
$ pip install memory_profiler 

,然後在我定義我的IPython會話:

import memory_profiler 

def load_ipython_extension(ip): 
    ip.define_magic('memit', memory_profiler.magic_memit) 
    ip.define_magic('mprun', memory_profiler.magic_mprun) 

當,當我再試試:

%memit

我得到:ERROR: Line magic function not defined。爲什麼?

另外,是2013年的相關文章還是IPython 2.x

回答

1

您還需要「註冊模塊」,如後文中所述。

編輯〜/ .ipython/profile_default/ipython_config.py,搜索, 取消註釋,並修改這些列表以包括:

c.TerminalIPythonApp.extensions = [ 'line_profiler_ext', 「memory_profiler_ext 」,] c.InteractiveShellApp.extensions = [ 'line_profiler_ext', 'memory_profiler_ext',]

這爲我工作,當我限定的輪廓和擴展文件夾$IPythonDIR/extensions

不確定,如果您手動導入交互式shell中的函數,如何使其工作。

+0

謝謝。你知道註冊模塊的功能嗎? –

+1

不,我不知道。對不起......我想這將需要了解'c.InteractiveShellApp.extensions'的作用。 – Jan