【发布时间】:2016-08-24 23:13:41
【问题描述】:
假设我在 REPL 或某处加载了一堆包,我正在使用引用酷模块 CoolModule 的代码。我怎样才能弄清楚它属于哪个包?
【问题讨论】:
假设我在 REPL 或某处加载了一堆包,我正在使用引用酷模块 CoolModule 的代码。我怎样才能弄清楚它属于哪个包?
【问题讨论】:
如果一个模块定义了多个子模块并假设CoolModule是其中之一,你可以通过@which找到它所属的模块/包:
julia> whos()
Base 23813 KB Module
Core 2858 KB Module
Main 26440 KB Module
ans 23865 KB Module
julia> @which Sys
Base
这里,Sys 是Base 的子模块。
【讨论】:
@which 也在模块上工作。太棒了!
module_parent 函数。
如果模块名称与包不同,我会觉得很奇怪(实际上,在您问这个问题之前,我认为模块名称和文件名 必须 相同).. . 但如果你必须,你可以从你的终端使用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)。
【讨论】: