ipython%存储魔术不起作用

时间:2014-01-06 10:55:30

标签: python alias ipython ipython-magic

我试图让我的ipython别名持久化,并且根据文档,%store magic函数提供此功能。但这对我不起作用。

wim@SDFA100461C:/tmp$ echo 'print("hello world!")' > test.py
wim@SDFA100461C:/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)? 
wim@SDFA100461C:/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 +

2 个答案:

答案 0 :(得分:9)

您需要运行%store -r来检索存储的变量(和别名)。

当然,您可以将它添加到您的ipython启动脚本中。

答案 1 :(得分:1)

您也可以在常规脚本中恢复,例如,如果您的IDE(Spyder)不支持ipython_config.py文件:

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

(把它放在Spyder的IPython配置的Startup选项卡中调用的文件中。这花了我太长时间才弄明白。)