Магия ipython% store не работает

Я пытаюсь сделать свой псевдоним ipython постоянным, и, согласно документам, магическая функция% store предлагает эту функцию. Но это не работает для меня.

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+


person wim    schedule 06.01.2014    source источник


Ответы (2)


Вам нужно запустить %store -r для получения сохраненных переменных. (и псевдонимы).

Конечно, вы можете добавить это в свой сценарий запуска ipython.

person ecatmur    schedule 06.01.2014
comment
ХОРОШО. Для Ubuntu 13.10 это сработало, добавив мою магию в ~/.config/ipython/profile_default/startup/wim.ipy - person wim; 06.01.2014
comment
Спасибо @wim, я не знал о возможности даже использовать загрузочные ipy-файлы (знал только об использовании обычных файлов python), но это очень упрощает мне задачу, так как store -r у меня почему-то не работает - person tim; 11.06.2014
comment
Можно ли автоматически хранить все переменные в ipython? - person BND; 21.09.2020

Вы также можете восстановить в обычном скрипте, например, если ваша IDE (Spyder) не поддерживает файл ipython_config.py:

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

(Поместите это в файл, который вызывается на вкладке «Автозагрузка» конфигурации Spyder IPython. Мне потребовалось слишком много времени, чтобы понять это.)

person endolith    schedule 15.11.2017