【问题标题】:Creating and using a custom module in Julia在 Julia 中创建和使用自定义模块
【发布时间】:2018-10-20 20:50:49
【问题描述】:

虽然之前有人问过这个问题,但 Julia V1.0 中的模块似乎发生了很大变化。

我正在尝试编写一个自定义模块并对其进行一些测试。从the Julia documentation on Pkg,使用dev 命令,有一种方法可以创建一个 git 树并开始工作。

但是,在这一点上,这似乎有点过头了。我想做一个小的本地文件,比如mymodule.jl,就像:

module MyModule

export f, mystruct

function f()
end

struct mystruct
  x::Integer
end

end # MyModule

以前好像可以加载

include("module.jl")
using MyModule

输入include("module.jl"),似乎代码加载,即没有错误,但是,using MyModule 给出了错误:

ArgumentError: Package MyModule not found in current path:
   - Run `import Pkg; Pkg.add("MyModule")` to install the MyModule package.

我注意到在使用include("module.jl") 时,可以使用完整路径MyModule.f() 访问导出的函数和结构,但我想要更短的版本,只是f()

然后我的问题是:要开发一个模块,我需要使用 Pkg dev 命令还是有更轻量级的方法来做到这一点?

【问题讨论】:

标签: module julia


【解决方案1】:

要使用本地模块,您必须在模块名称前加上 .

using .MyModule

using MyModule 运行时(没有.),Julia 会尝试查找安装到当前 Pkg 环境中的名为 MyModule 的模块,因此会出现错误。

【讨论】:

  • 嗨,很抱歉提出旧线程。我假设我想在include("mymodule.jl") 之后运行它?我如何在没有include 的情况下使用MyModule?问题是有些函数我不想导出,通过包含它,我仍然可以使用Main.MyModule.function_I_dont_want_to_import 访问它。
猜你喜欢
  • 2022-11-18
  • 2012-10-03
  • 2022-09-26
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-29
相关资源
最近更新 更多