julia:在没有 Internet 的情况下创建和使用本地包
julia: create and use a local package without Internet
我正在尝试创建一个 julia 语言包并在项目中使用它。
现在我只有一个jl文件,我不知道如何用它创建一个包。
我已经阅读了这篇文章link,但我仍然不知道该怎么做。我想创建一个带有 jl 文件的本地包,并使用以下代码在我自己的本地项目中使用它:using MyPackage
.
有人可以帮我吗?
你应该把文件放在
~/.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
都可供用户使用。我不再需要使用完全限定的名称来访问 test
:test()
会起作用。
我正在尝试创建一个 julia 语言包并在项目中使用它。
现在我只有一个jl文件,我不知道如何用它创建一个包。
我已经阅读了这篇文章link,但我仍然不知道该怎么做。我想创建一个带有 jl 文件的本地包,并使用以下代码在我自己的本地项目中使用它:using MyPackage
.
有人可以帮我吗?
你应该把文件放在
~/.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
都可供用户使用。我不再需要使用完全限定的名称来访问 test
:test()
会起作用。