在Julia中创建和使用自定义模块

Pet*_*aab 3 module julia

尽管之前已经问过这个问题,但对于Julia V1.0中的模块而言,似乎已经发生了很大变化。

我正在尝试编写一个自定义模块并对其进行一些测试。从Pkg的Julia文档中,可以使用以下dev命令创建git树并开始工作。

但是,这似乎有点过头了。我只想做一个小的本地文件,mymodule.jl就像这样:

module MyModule

export f, mystruct

function f()
end

struct mystruct
  x::Integer
end

end # MyModule
Run Code Online (Sandbox Code Playgroud)

看来以前可以加载它

include("module.jl")
using MyModule
Run Code Online (Sandbox Code Playgroud)

输入include("module.jl"),似乎代码已加载,即没有错误,但是using MyModule给出了错误:

ArgumentError: Package MyModule not found in current path:
   - Run `import Pkg; Pkg.add("MyModule")` to install the MyModule package.
Run Code Online (Sandbox Code Playgroud)

我注意到使用时include("module.jl"),可以使用完整路径访问导出的函数和结构,MyModule.f()但是我想使用较短的版本,只是f()

然后我的问题是:要开发一个模块,我是否需要使用Pkg dev命令,或者是否有更轻量的方法来做到这一点?

Har*_*din 5

为了使用本地模块,必须在模块名称前添加.

using .MyModule
Run Code Online (Sandbox Code Playgroud)

using MyModule运行时(不带.),Julia尝试查找一个称为MyModule已安装到当前Pkg环境的模块,因此发生错误。