【问题标题】:Documenter.jl UndefVarErrorDocumenter.jl UndefVarError
【发布时间】:2021-06-05 17:22:58
【问题描述】:

我正在尝试使用 Documenter.jl 为 Julia 模块创建文档。现在我导入了一个文档记录器由于某种原因找不到的模块。更明确地说:我通过import SparseArrays 导入了SparseArrays.jl,并在文档字符串中引用了SparseArrays.AbstractSparseArray。 (我也安装了SparseArrays.jl。)但我得到了ERROR: LoadError: UndefVarError: SparseArrays not defined。这是什么原因,我该如何解决?

编辑:代码的相关部分如下所示:

module ExampleModule
import SparseArrays
include("example.jl")
end

example.jl:

"""
    f
does stuff.
"""
function f(x::SparseArrays.AbstractSparseArray)
    return
end

index.md:

```@docs
f(x::SparseArrays.AbstractSparseArray)
```

【问题讨论】:

  • 要在 Markdown 代码块中包含三个反引号,请使用 四个 反引号来打开和关闭代码块。

标签: import julia undefined documentation-generation undefvarerror


【解决方案1】:

您很可能已将其导入到单独的代码块中。有关该问题的说明,请参阅 here

您可能还需要在设置代码中添加import SparseArrays,如here 所述。这是需要的,例如你在文档字符串中有文档测试。

Here 是如何在 DataFrames.jl 中完成的示例(通常 DataFrames.jl 在文档字符串和文档代码中都启用了文档测试,因此您可以查看我们在那里的整个设置)。

如果这不是原因,那么您能否在问题中分享您的代码以便对其进行检查?

【讨论】:

  • 我不确定我明白你的意思。我已经在模块的开头导入了它。那么它应该可以在模块内的文档字符串中使用,不是吗?我将代码的重要部分添加到问题中。
  • 我添加了一条附加评论 - 希望对您有所帮助。
  • 我想我的问题并不准确,我实际上并没有在文档字符串中引用它。我只有一个函数的文档字符串,该函数将这种类型的对象作为输入。这使得documenter 抛出一个错误。你看到我上面的代码有什么问题吗?
  • 这很奇怪(我假设您已经为 documenter 正确设置了 Project.toml)。为此,我会在 Documenter.jl 中打开一个问题。
  • 我也刚刚在index.md文件中添加了相关代码。我不只是在@docs 环境中有f,而是f(x::SparseArrays.AbstractSparseArray),因为我有不同版本的f 和不同的文档字符串。所以SparseArrays 出现在.md 文件中。这会导致问题吗?如果是,我该如何解决?
猜你喜欢
  • 2018-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多