Julia - 获取我的模块的版本号

dpa*_*pac 5 package julia

我正在为 Julia 编写一个包,在包中我希望能够打印我的包当前版本号。我当然可以手动执行此操作,但我正在寻找一种直接从模块读取它的方法。版本号写在 Project.toml 文件中,但我一直无法找到从代码中读取它的方法。有任何想法吗?

pfi*_*seb 6

你可以使用类似的东西

julia> using Pkg

julia> loadedversion(m::Module) =  VersionNumber(Pkg.TOML.parsefile(joinpath(string(first(methods(m.eval)).file), "..", "..", "Project.toml"))["version"])
loadedversion (generic function with 1 method)

julia> loadedversion(Atom)
v"0.12.8"
Run Code Online (Sandbox Code Playgroud)

当然,一些错误处理是谨慎的,但这将为您提供实际加载的包的版本(而不是当前环境中指定的版本)。


day*_*ter 2

可能——

using Pkg
Pkg.TOML.parse(read("Project.toml", String))["version"]
Run Code Online (Sandbox Code Playgroud)

->“0.0.1”