导入模块并在julialang中使用它

时间:2014-03-25 23:38:11

标签: julia

由于在http://julia.readthedocs.org/en/latest/manual/modules/中没有关于模块的信息,我想问以下内容。

我想通过ijulia尝试两个模块。这两个模块都在我的工作目录中 名称的-files.jul。我将一般称它们为module_1.jul和module_2.jul。

module_1.jul使用module_2.jul,我用

加载它
using module_2

在ijulia会话上,如果我尝试

using module_1

给出错误。我也试过

include("module_1.jul")

这句最后一句话在执行时会出现错误,因为module_1.jul无法找到 我知道的变量“x”包含在module_1.jul中(在这种情况下,我“加载”了模块 在module_1.jul中使用include(“module2.jul”)

2 个答案:

答案 0 :(得分:10)

Julias模块系统假设一些事情从一开始就不一定是明显的。

  1. Julia文件应以.jl扩展名结尾。
  2. Julia在LOAD_PATH变量中定义的目录中查找模块文件。
  3. Julia以ModuleName / src / file.jl
  4. 的形式查找这些目录中的文件

    如果using module_1失败,那么我猜它是因为它的源文件无法满足上述条件之一。

答案 1 :(得分:1)

自这个问题以来已经过去了一段时间。最近,Noah_S在上一个答案的注释中写下了解决方案;这意味着人们开始学习该语言时常会遇到疑问。为了他们的缘故,我将在这里将Noah_S的答案连同我最新颖的解决方案一起重新编写。

我对julia版本感到困惑,哪些命令适用于特定版本,因此对于较旧的julia版本,我们必须查找\path,然后将其包含在julia模块中

push!(LOAD_PATH, "/path")

在较新版本中,可以对此进行改进。忘记手工寻找路径就行了

path = readstring(`pwd`)
push!(LOAD_PATH, chomp(path))

我希望这对许多朱利安新来者有用。