使用IPython / Jupyter开发Julia模块的好工作流程是什么?

时间:2015-06-05 13:09:56

标签: module ipython julia jupyter

我发现自己经常开发新的Julia模块,同时使用这些模块进行工作。所以我将有一个IPython(Jupyter)笔记本,类似于:

using DataFrames
using MyModule

然后我会做类似的事情:

x = myfunction(7, 3)

但我必须修改这个功能,不幸的是,到那时我不能简单地做

using MyModule

一次。我不确定为什么;我认为调用using只是声明可用模块以使全局范围知道它们,然后当实际需要名称时,运行时在当前加载的模块中搜索定义(从{{1开始) }})。

那么Main不应该只刷新已经声明的模块中的项目的定义吗?为什么我必须完全停止并重新启动内核才能使用我更新的函数? (这是因为名称只绑定到使用using MyModule关键字声明的函数吗?)

我查看了Julia Workflow Tips,但我发现整个functionTmp系统非常简单或优雅......至少对于笔记本而言。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我认为this statement attributed to one of the Juno developers: Jupyter笔记本有很多用于处理数据的事实。 Juno IDE用于处理代码。

Jupyter非常适合使用笔记本电脑风格的模块,使您获得的输出具有可重现性。 Juno和REPL具有较少的开销,可以让您继续启动新会话(更快的测试,并修复您提到的问题),打开多个选项卡以遵循复杂模块的代码,并可以使用调试器(在v0.5中)。它们针对不同的使用阶段解决了不同的开发问题。如果你使用错误的工具做错工作,我认为你正在逆势而上。