从Julia 1.0中特定目录中的文件导入模块和功能

时间:2018-08-13 14:13:40

标签: import julia using

比方说,我有一个文件File.jl,其中有一个模块MyModule,其中包含函数foobar。在与模块文件相同的目录中,我有一个脚本Script.jl,我想在脚本中使用MyModule中的功能。

人们将如何做呢?

2 个答案:

答案 0 :(得分:3)

为了找到不在标准LOAD_PATH中的模块并能够导入它们,您需要显式更新当前文件夹的LOAD_PATH变量

push!( LOAD_PATH, "./" )

然后您将能够适当地导入模块。

请注意,如果文件名为File.jl并定义了模块MyModule,则应导入的是import MyModule,而不是import File。在这种情况下,通常建议您为文件使用与定义的模块相同的名称,以避免混淆。

还请注意,如上文@crstnbr所述,您还可以通过简单地“包括”它来简单地将文件内容“转储”到当前会话中;但是请注意,这只是在现场创建模块,因此不会遵循任何预编译指令等。


一些与您相关的问题/答案(免责声明:由我负责),您可能会发现有帮助:

答案 1 :(得分:2)

您将文件包含在模块定义中,并在脚本文件中调用函数:

include(joinpath(@__DIR__,"File.jl"))
MyModule.foo()
MyModule.bar()
# or just foor() and bar() if MyModule exports those functions

@__DIR__扩展到脚本文件的目录,请参见

help?> @__DIR__
  @__DIR__ -> AbstractString

  Expand to a string with the absolute path to the directory of the file containing the macrocall. Return the current working directory if run from a REPL or if evaluated by julia -e <expr>.