'How to clear variables in ipython?
Sometimes I rerun a script within the same ipython session and I get bad surprises when variables haven't been cleared. How do I clear all variables? And is it possible to force this somehow every time I invoke the magic command %run?
Thanks
Solution 1:[1]
%reset seems to clear defined variables.
Solution 2:[2]
EDITED after @ErdemKAYA comment.
To erase a variable, use the magic command:
%reset_selective <regular_expression>
The variables that are erased from the namespace are the one matching the given <regular_expression>.
Therefore
%reset_selective -f a
will erase all the variables containing an a.
Instead, to erase only a and not aa:
In: a, aa = 1, 2
In: %reset_selective -f "^a$"
In: a # raise NameError
In: aa # returns 2
see as well %reset_selective? for more examples and https://regexone.com/ for a regex tutorial.
To erase all the variables in the namespace see:
%reset?
Solution 3:[3]
In iPython you can remove a single variable like this:
del x
Solution 4:[4]
I tried
%reset -f
and cleared all the variables and contents without prompt. -f does the force action on the given command without prompting for yes/no.
Wish this helps.. :)
Solution 5:[5]
Adding the following lines to a new script will clear all variables each time you rerun the script:
from IPython import get_ipython
get_ipython().magic('reset -sf')
To make life easy, you can add them to your default template.
In Spyder: Tools>Preferences>Editor>Edit template
Solution 6:[6]
Apart from the methods mentioned earlier. You can also use the command del to remove multiple variables
del variable1,variable2
Solution 7:[7]
An quit option in the Console Panel will also clear all variables in variable explorer
*** Note that you will be loosing all the code which you have run in Console Panel
Solution 8:[8]
The get_ipython().magic() method raises a DeprecationWarning in ipython 8.1. Here is the new version of Carl's answer
from IPython import get_ipython
get_ipython().run_line_magic('reset', '-sf')
Add these lines to a file you are editing. Then at the ipython command prompt you can type,
%run file_you_are_editing.py
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | aisbaa |
| Solution 2 | |
| Solution 3 | |
| Solution 4 | zx485 |
| Solution 5 | Carl |
| Solution 6 | Devarshi Mandal |
| Solution 7 | Sirish |
| Solution 8 | chubb |
