我发现自己经常开发新的Julia模块,同时使用这些模块进行工作。所以我将有一个IPython(Jupyter)笔记本,类似于:
using DataFrames
using MyModule
然后我会做类似的事情:
x = myfunction(7, 3)
但我必须修改这个功能,不幸的是,到那时我不能简单地做
using MyModule
一次。我不确定为什么;我认为调用using
只是声明可用模块以使全局范围知道它们,然后当实际需要名称时,运行时在当前加载的模块中搜索定义(从{{1开始) }})。
那么Main
不应该只刷新已经声明的模块中的项目的定义吗?为什么我必须完全停止并重新启动内核才能使用我更新的函数? (这是因为名称只绑定到使用using MyModule
关键字声明的函数吗?)
我查看了Julia Workflow Tips,但我发现整个function
,Tmp
系统非常简单或优雅......至少对于笔记本而言。
有什么建议吗?
答案 0 :(得分:2)
我认为this statement attributed to one of the Juno developers: Jupyter笔记本有很多用于处理数据的事实。 Juno IDE用于处理代码。
Jupyter非常适合使用笔记本电脑风格的模块,使您获得的输出具有可重现性。 Juno和REPL具有较少的开销,可以让您继续启动新会话(更快的测试,并修复您提到的问题),打开多个选项卡以遵循复杂模块的代码,并可以使用调试器(在v0.5中)。它们针对不同的使用阶段解决了不同的开发问题。如果你使用错误的工具做错工作,我认为你正在逆势而上。