使用jupyter笔记本的替代工作流程(又名如何避免重复初始化延迟)?

时间:2016-12-28 14:44:57

标签: python initialization delay jupyter-notebook

通常我使用jupyter笔记本和python的主要原因是初始化一次(并且只有一次)对象(或通常是“数据”),这些对象往往具有很长(比如说超过30秒)的加载时间。当我的工作是迭代的,即我多次运行某些算法的最低版本时,重复初始化的累积成本可能会在一天结束时变大。

我正在寻找一种替代方法(允许避免不使用笔记本重复初始化的成本),原因如下:

  • 使用笔记本时没有“开箱即用”的版本控制。
  • 偶尔会出现“我忘了在一个地方重命名变量”的问题。一切都继续工作,直到笔记本电脑重新启动。
  • 通常我想在最后都有可用的python模块。
  • 不知何故,当使用笔记本时,我倾向于获得远离“干净”的代码(我想这是更多的自律问题......)。

理想的工作流程应该允许在IDE内部执行整个开发(例如pyCharm; BTW linux是唯一的选择)。有什么想法吗?

我正在考虑实现一个简单的(本地)执行服务器,它将有问题的对象预先初始化为全局变量,并通过每次生成一个新进程来按需运行代码(使用那些全局变量而不是执行初始化) (这样可以保护这些对象不被修改,同时由于这些变量是全局的,因此在生成新进程时没有任何pickle / unpickle惩罚)。

但在我开始实施之前 - 可能已经有一些工作解决方案或工作流程已知?

1 个答案:

答案 0 :(得分:1)

Visual Studio Code + Python扩展工作正常(Windows和Mac,不确定Linux)。非常快速和轻量级,Git集成,调试重构等。

还有一个名为Spyder的IDE,它更具有Python特性。工作正常,但重量更重。