相关疑难解决方法(0)

如何在编辑后在活动的Julia会话中重新加载模块?

2018年更新:请务必检查所有回复,因为这个问题的答案多年来已经多次改变.在此更新时,Revise.jl答案可能是最佳解决方案.

我有一个文件"/SomeAbsolutePath/ctbTestModule.jl",其内容是:

module ctbTestModule
export f1
f1(x) = x + 1
end
Run Code Online (Sandbox Code Playgroud)

我在一个运行"〜/ .juliarc.jl"的终端中点燃Julia.启动代码包括以下行:

push!(LOAD_PATH, "/SomeAbsolutePath/")
Run Code Online (Sandbox Code Playgroud)

因此我可以立即输入Julia控制台:

using ctbTestModule
Run Code Online (Sandbox Code Playgroud)

加载我的模块.正如预期的f1(1)回报2.现在我突然决定要编辑f1.我在编辑器中打开"/SomeAbsolutePath/ctbTestModule.jl",并将内容更改为:

module ctbTestModule
export f1
f1(x) = x + 2
end
Run Code Online (Sandbox Code Playgroud)

我现在尝试在我的活跃Julia会话中重新加载模块.我试试

using ctbTestModule
Run Code Online (Sandbox Code Playgroud)

f1(1)仍然返回2.接下来我尝试:

reload("ctbTestModule")
Run Code Online (Sandbox Code Playgroud)

正如这里所建议的,但f1(1)仍然会回归2.最后,我尝试:

include("/SomeAbsolutePath/ctbTestModule.jl")
Run Code Online (Sandbox Code Playgroud)

正如这里所建议的那样,这是理想的,因为我必须输入完整的绝对路径,因为当前目录可能不是"/ SomeAbsolutePath".我收到的警告信息Warning: replacing module ctbTestModule听起来很有希望,但f1(1)仍然会返回2.

如果我关闭当前的Julia会话,启动一个新会话并输入using ctbTestModule,我现在得到所需的行为,即f1(1)返回3.但显然我想在不 …

module julia

56
推荐指数
4
解决办法
1万
查看次数

标签 统计

julia ×1

module ×1