2014-01-06 28 views
4

我試圖讓我的ipython別名持久化,並根據文檔%存儲魔術功能提供此功能。但它不適合我。ipython%store魔術不起作用

[email protected]:/tmp$ echo 'print("hello world!")' > test.py 
[email protected]:/tmp$ ipython 
In [1]: alias potato python /tmp/test.py 

In [2]: potato 
hello world! 

In [3]: %store potato 
Alias stored: potato (python /tmp/test.py) 

In [4]: 
Do you really want to exit ([y]/n)? 
[email protected]:/tmp$ ipython 
In [1]: potato 
--------------------------------------------------------------------------- 
NameError         Traceback (most recent call last) 
<ipython-input-1-e561f9248d75> in <module>() 
----> 1 potato 

NameError: name 'potato' is not defined 

我在IPython的1.1.0/Python的2.7.5+

回答

8

你需要運行%store -r檢索存儲變量(和別名)。

當然,您可以將其添加到您的ipython啓動腳本中。

+1

好的。對於Ubuntu 13.10,它的工作原理是將我的魔法添加到'〜/ .config/ipython/profile_default/startup/wim.ipy'中。 – wim

+0

謝謝@wim,不知道甚至可以使用啓動ipy-files使用普通的python文件),但這對我來說很簡單,因爲'store -r'對我來說不起作用 – tim

1

您也可以恢復楷書,例如,如果你的IDE(Spyder的)不支持ipython_config.py文件:

from IPython import get_ipython 
ipython = get_ipython() 
ipython.magic("store -r") 

(將這個在這就是所謂的Spyder的的啓動選項卡文件IPython配置,這花了我太多的時間來弄清楚。)