【问题标题】:Find package given module name in Julia?在 Julia 中查找给定模块名称的包?
【发布时间】:2016-08-24 23:13:41
【问题描述】:

假设我在 REPL 或某处加载了一堆包,我正在使用引用酷模块 CoolModule 的代码。我怎样才能弄清楚它属于哪个包?

【问题讨论】:

    标签: module julia


    【解决方案1】:

    如果一个模块定义了多个子模块并假设CoolModule是其中之一,你可以通过@which找到它所属的模块/包:

    julia> whos()
                              Base  23813 KB     Module
                              Core   2858 KB     Module
                              Main  26440 KB     Module
                               ans  23865 KB     Module
    
    julia> @which Sys
    Base
    

    这里,SysBase 的子模块。

    【讨论】:

    • 啊。我不知道@which 也在模块上工作。太棒了!
    • +1;我误解了这个问题。 :) 对于带有子模块的模块,还有 module_parent 函数。
    【解决方案2】:

    如果模块名称与包不同,我会觉得很奇怪(实际上,在您问这个问题之前,我认为模块名称和文件名 必须 相同).. . 但如果你必须,你可以从你的终端使用grep(如果你在linux上),例如:

    ~/.julia/v0.6 $ grep "module CoolModule" -r
    

    这将向您显示定义它的文件。例如。对于我系统上的模块StatsBase

    tasos@tasos-VanB ~/.julia/v0.6 $ grep "module StatsBase" -r
    StatsBase/src/StatsBase.jl:module StatsBase
    

    Windows 也有一个类似 grep 的命令,称为 find。 (或者你可以只下载 grep for windows)。

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 2016-02-11
      • 2010-11-08
      • 1970-01-01
      相关资源
      最近更新 更多