julia:创建并使用没有Internet的本地包

时间:2015-03-23 13:35:23

标签: package julia

我正在尝试创建一个julia语言包并在项目中使用它 现在我只有一个jl文件,我不知道如何用它创建一个包。

我已阅读此link但我仍然不知道该怎么做。我想创建一个带有jl文件的本地包,并使用以下代码在我自己的本地项目中使用它:using MyPackage

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:11)

您应该将文件放在

〜/ .julia / v0.X / MyPackage的/ SRC / MyPackage.jl

其中〜是您的主目录,X是您正在使用的Julia的版本号。 X将是3,除非你是Julia的开发或夜间版本,在这种情况下它将是4.

另请注意,为此,MyPackage.jl文件应定义模块MyPackage,并在使用MyPackage调用后导出您希望可用的定义。

要自动创建此结构,您可以调用Pkg.generate(“MyPackage”,“MIT”),其中MIT可以替换为另一个受支持的默认许可证。这将在正确的位置创建文件夹并为您设置模块结构。然后,您只需将代码合并到该结构中即可。


修改

以下是文件~/.julia/v0.3/MyPackage/src/MyPackage.jl的两个可能内容示例:

module MyPackage

function test()
    1
end

end  # module

module MyPackage

export test

function test()
    1
end

end  # module

在第一种情况下,我没有export任何东西。因此,当调用using MyPackage时,只有模块MyPackage本身可供用户使用。如果我想使用test函数,我必须使用完全限定名称:MyPackage.test()

在第二种情况下,我选择导出函数test。这发生在export test行。现在,当我致电using MyPackage时,模块MyPackage和函数test都可供用户使用。我不再需要使用完全限定的名称来访问testtest()将有效。