在iPython控制台中保存脚本运行之间的参数

时间:2017-11-17 10:47:23

标签: machine-learning scikit-learn ipython anaconda spyder

我想找到与Spyder控制台命令等效的iPython控制台。

当我使用Spyder应用程序时,所有变量都会在脚本运行之间保存。 我不仅仅意味着我可以在脚本完成运行后检查值,但这些值将在下一个脚本运行中保留。

Spyder控制台命令(不在iPython控制台中工作):
runfile('some_file.py', wdir='/some/project/folder')

iPython控制台中有类似的命令:
%run -i "some_script.py"

问题是当新脚本开始执行时,此命令会删除旧值。

为什么这很重要?

让我们说我的剧本和其他东西构建了一些需要很长时间(呃)然后我愿意等待(每次)的模型。在Spyder中,我可以在第一次运行它,然后注释掉这行代码,下次只运行其余的代码并从工作内存中提取模型。

(是的,我知道我可以用腌制格式等保存模型,但这完全不是重点)

编辑:
这很尴尬,但由于某种原因,我不再对-i旗帜有任何问题。所以我能够用它获得所需的功能。也许是因为Anaconda的新版本。

1 个答案:

答案 0 :(得分:1)

您可以使用dill(python pickle的扩展名)保存整个会话。因此,您的脚本的每一端都会保存当前会话。

import dill
dill.dump_session("temp.pkl")

每次启动脚本都会加载上一个会话。

import dill
dill.load_session("temp.pkl")

这会保留会话中的所有变量,因此您只需注释掉您不需要更改的变量。