I'm trying to get an IPython alias to persist, and according to docs the %store
magic offers this feature. But it's not working:
$ echo 'print("hello world!")' > test.py
$ 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)?
$ ipython
In [1]: potato
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-e561f9248d75> in <module>()
----> 1 potato
NameError: name 'potato' is not defined
What's missing?
You need to run %store -r
to retrieve stored variables (and aliases).
Of course, you can add this to your ipython startup script.
You can also restore in a regular script, for instance if your IDE (Spyder) doesn't support the ipython_config.py
file:
from IPython import get_ipython
ipython = get_ipython()
ipython.magic("store -r")
(Put this in a file that's called in the Startup tab of Spyder's IPython configuration. This took me way too long to figure out.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With