spyder – clear variable explorer along with variables from memory
Question:
To clear the console we can use the following command –
import subprocess as sp
tmp = sp.call('cls',shell=True)
However, to remove a variable from memory, we often rely upon –
- using
del
command
- removing variable manually by using the drop-down menu in variable explorer
But both of them are variable specific and hence time-consuming. So is there any general command (like clear
under MATLAB) to remove a variable from memory and thereafter from Spyder’s Variable Explorer.
Answers:
Go to the IPython console in the Spyder IDE and type %reset. It will prompt you to enter (y/n) as the variables once deleted cannot be retrieved. Type ‘y’ and hit enter. That’s it.
Surfing on the web, I found a hack to solve the annoying problem of clearing the variable explorer every time you want to execute again a script:
def clear_all():
"""Clears all the variables from the workspace of the spyder application."""
gl = globals().copy()
for var in gl:
if var[0] == '_': continue
if 'func' in str(globals()[var]): continue
if 'module' in str(globals()[var]): continue
del globals()[var]
if __name__ == "__main__":
clear_all()
# insert here your code
Basically, it consists of executing the function clear_all()
just before everything else. It is writing by yourself the same Matlab’s function.
Here the link to the git issue where the solution was proposed.
As explained in the answer provided by Karan Kaw, there is a setting to delete all the variables, regardless of the script you are workin on.
Do the following (from the drop-downs bar)
> Tools
> Preferences
> Run
and check the Remove all the variables before execution
checkbox in the General Setting
section. In doing this I use Spyder 3.3.4.
This completion may be in order if you want all the scripts you work on to be executed with the preventive deletion of all the variables. Hope it helps
To clear the console we can use the following command –
import subprocess as sp
tmp = sp.call('cls',shell=True)
However, to remove a variable from memory, we often rely upon –
- using
del
command - removing variable manually by using the drop-down menu in variable explorer
But both of them are variable specific and hence time-consuming. So is there any general command (like clear
under MATLAB) to remove a variable from memory and thereafter from Spyder’s Variable Explorer.
Go to the IPython console in the Spyder IDE and type %reset. It will prompt you to enter (y/n) as the variables once deleted cannot be retrieved. Type ‘y’ and hit enter. That’s it.
Surfing on the web, I found a hack to solve the annoying problem of clearing the variable explorer every time you want to execute again a script:
def clear_all():
"""Clears all the variables from the workspace of the spyder application."""
gl = globals().copy()
for var in gl:
if var[0] == '_': continue
if 'func' in str(globals()[var]): continue
if 'module' in str(globals()[var]): continue
del globals()[var]
if __name__ == "__main__":
clear_all()
# insert here your code
Basically, it consists of executing the function clear_all()
just before everything else. It is writing by yourself the same Matlab’s function.
Here the link to the git issue where the solution was proposed.
As explained in the answer provided by Karan Kaw, there is a setting to delete all the variables, regardless of the script you are workin on.
Do the following (from the drop-downs bar)
> Tools
> Preferences
> Run
and check the Remove all the variables before execution
checkbox in the General Setting
section. In doing this I use Spyder 3.3.4.
This completion may be in order if you want all the scripts you work on to be executed with the preventive deletion of all the variables. Hope it helps