J'ai rencontré un problème lorsque je suis passé de python 2.7 à python 3.3. J'ai utilisé spyderlib mais maintenant il met à jour vers spyder. Par conséquent, j'ai revu mon code pour enregistrer toutes les variables en données de spydata comme ci-dessous:Utiliser la bibliothèque spyder pour enregistrer toutes les variables dans le fichier spydata
from spyder.utils.iofuncs import save_dictionary
def variablesfilter():
from spyder.widgets.variableexplorer.utils import globalsfilter
from spyder.plugins.variableexplorer import VariableExplorer
from spyder.config.base import get_conf_path, get_supported_types
data = globals()
settings = VariableExplorer.get_settings()
get_supported_types()
data = globalsfilter(data,
check_all=True,
filters=tuple(get_supported_types()['picklable']),
exclude_private=settings['exclude_private'],
exclude_uppercase=settings['exclude_uppercase'],
exclude_capitalized=settings['exclude_capitalized'],
exclude_unsupported=settings['exclude_unsupported'],
excluded_names=settings['excluded_names']+['settings','In'])
return data
def saveglobals(filename):
data = variablesfilter()
save_dictionary(data,filename)
savepath = 'memory.spydata'
saveglobals(savepath)
Cependant, il jette notre erreur comme ci-dessous:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\jialiang.shen\AppData\Local\Continuum\Anaconda3_new\lib\site-packages\spyder\utils\site\sitecustomize.py", line 880, in runfile
execfile(filename, namespace)
File "C:\Users\jialiang.shen\AppData\Local\Continuum\Anaconda3_new\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/jialiang.shen/temp/s1.py", line 37, in <module>
saveglobals(savepath)
File "C:/Users/jialiang.shen/temp/s1.py", line 32, in saveglobals
data = variablesfilter()
File "C:/Users/jialiang.shen/temp/s1.py", line 18, in variablesfilter
settings = VariableExplorer.get_settings()
TypeError: get_settings() missing 1 required positional argument: 'self'
Cette erreur doit être originaire de la mise à niveau de la bibliothèque spyderlib à spyder. Est-ce que quelqu'un peut m'aider? Merci beaucoup!
J'ai essayé cette méthode, mais python me écrasé après avoir fait ce changement. Des pensées? – David