在学习Julia的同时,我偶然发现了一项基本任务,即包含来自不同目录的文件。我有两个目录,分别是 Core 和 Explore ,这两个目录都不是另一个的父目录。见图。目录 Core 的文件 Core.jl 和
module Core
foo() = 1
end
,也可以是带有foo()
的基本 .jl 文件,而不是模块。
目录 Explore 中的文件 Explore.jl 需要使用 Core.jl 中的foo()
。因此,我尝试将以下行放入 Explore.jl 中:/Users/me/PycharmProjects/juliaProjects/src/Core/Core.jl
,include("./Core.jl")
和其他排列。但是我不断收到类似的错误
ERROR: LoadError: could not open file /Users/me/PycharmProjects/juliaProjects/src/Core/Core.jl
Stacktrace:
[1] include at ./boot.jl:317 [inlined]
[2] include_relative(::Module, ::String) at ./loading.jl:1038
[3] include(::Module, ::String) at ./sysimg.jl:29
[4] include(::String) at ./client.jl:398
[5] top-level scope at none:0
[6] include at ./boot.jl:317 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1038
[8] include(::Module, ::String) at ./sysimg.jl:29
[9] exec_options(::Base.JLOptions) at ./client.jl:239
[10] _start() at ./client.jl:432
in expression starting at /Users
问题: 什么是放入 jl。文件的正确include
规范?
环境是Mac OS High Sierra上的Julia 0.7。请注意,我不是在使用外壳程序,而是在使用IDE,即Intellij 2018.3。的julia插件0.3.3。
我已经检查了SO上的其他问题,例如loading a module from the local directory in Julia,How to import custom module in julia,What should path be to Julia source file?,但它们似乎没有用。
编辑: 根据接受的答案,文件 Explore.jl 应包含
cd("src/Core")
include("../Core/Core.jl")
答案 0 :(得分:1)
您不能命名模块Core
,因为它是保留名称,并且(在我的计算机上经过测试)创建此类模块会使Julia意外崩溃。
请参阅下面的示例julia会话,以了解如何创建和加载位于不同文件夹中的模块(请不要通过按{{1}获取从julia>
到shell>
的提示}并退出;
,并带有退格符):
shell>