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

Nic*_*ick 7 module ipython julia jupyter

我发现自己经常开发新的Julia模块,同时使用这些模块进行工作.所以我将拥有一个IPython(Jupyter)笔记本,其中包括:

using DataFrames
using MyModule
Run Code Online (Sandbox Code Playgroud)

然后我会做类似的事情:

x = myfunction(7, 3)
Run Code Online (Sandbox Code Playgroud)

但我不得不修改这个功能,不幸的是,我不能简单地做到这一点

using MyModule
Run Code Online (Sandbox Code Playgroud)

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

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

我看着朱莉娅工作流提示,但我不觉得整Tmp,tst.jl系统很简单的或优雅......至少一个笔记本.

有什么建议?

Chr*_*kas 2

我认为Juno 开发人员之一的这句话很有道理: Jupyter Notebook 是用来处理数据的。Juno IDE 用于处理代码。

Jupyter 非常适合以笔记本风格使用模块,您获得的输出是可重现的。Juno 和 REPL 的开销更少,可以让您继续启动新会话(更快的测试,并修复您注意到的问题),打开多个选项卡来跟踪复杂模块的代码,并且可以使用调试器(在 v0.5 中)。它们针对不同的使用阶段解决不同的开发问题。我认为,如果您使用错误的工具来完成错误的工作,那么您就是在逆潮流而行。