[英]How do you load a module @everywhere inside a function in Julia
[英]How to properly load a module in Julia?
我一直在阅读很多Julia文档(版本0.4),但仍然遇到加载Julia文件的问题。 这似乎应该很容易。 那么,简单明了,我们如何在当前代码中直接使用其他文件中的Julia代码? 而且,作为一个相关的,有用的奖励,是否有任何历史或语言设计决策,理解,将阐明情况?
PS我用的是0.4。
如果你想要问题细节,这里有一些我正在处理的事情:
使用REPL,我想使用我在不同文件中编写的一些函数。 据说,我应该能够像这样加载所述文件:
julia> using Foobar
无论我做什么,这只会给我ArgumentErrors。 在尝试使用之前我尝试过包含它:
julia> include("Foobar.jl")
julia> using Foobar
我还尝试在尝试使用之前更新加载路径:
julia> push!(LOAD_PATH, "/Users/me/julia")
julia> using Foobar
当我尝试通过在使用之前包含文件来解决第一个问题时,我得到任何包含以下行的错误: using ...
消息是在路径中找不到模块。 或者换句话说,我正在尝试在当前工作目录中加载一个模块,该模块依赖于当前工作目录中的另一个模块。 当我包含我正在尝试加载的文件时,它会尝试查找依赖项而不能。
我尝试过相对路径。 即我与.jl文件位于同一目录中并执行:
julia> using .Foobar
如果使用include("/path/to/myscript.jl")
那么您应该可以访问使用include()
调用的文件中定义的任何函数,对象等。 不需要额外的using
呼叫。
这里有一个答案,提供了有关创建整个包的详细信息(而不仅仅是上面示例中的单个脚本),如何执行它们以及using
术语如何using
它们: julia:创建并使用本地包没有互联网 。 例如,包必须安装在相对于其他julia文件的特定路径中,而不仅仅安装在脚本所在的任意工作目录中。
另请参阅此处以获取有关包的更长教程。
它似乎在这里工作得很好:
julia> push!(LOAD_PATH, "/Users/me/julia")
2-element Array{ByteString,1}:
"/Applications/Julia-0.4.5.app/Contents/Resources/julia/local/share/julia/site/v0.4"
"/Users/me/julia"
julia> readdir(LOAD_PATH[end])
1-element Array{ByteString,1}:
"MyModule.jl"
julia> using MyModule
julia> x
"Hi there"
MyModule.jl包含的位置:
module MyModule
export x
x = "Hi there"
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.