Julia 朱莉娅:有没有办法找到软件包的最新版本号?

Julia 朱莉娅:有没有办法找到软件包的最新版本号?,julia,Julia,由于依赖关系限制,我的安装包通常不是最新版本。但是,我想通过查看通用注册表等方式确定我是否拥有软件包的最新版本。在Julia中是否有一种编程方法可以实现这一点?您可以在Julia 1.4.2中尝试: julia> using Pkg julia> function max_ver_number(pkgname::AbstractString) path = joinpath(DEPOT_PATH[1], "registries", &quo

由于依赖关系限制,我的安装包通常不是最新版本。但是,我想通过查看通用注册表等方式确定我是否拥有软件包的最新版本。在Julia中是否有一种编程方法可以实现这一点?

您可以在Julia 1.4.2中尝试:

julia> using Pkg

julia> function max_ver_number(pkgname::AbstractString)
           path = joinpath(DEPOT_PATH[1], "registries", "General",
                           first(pkgname, 1), pkgname, "Versions.toml")
           maximum(VersionNumber.(keys(Pkg.TOML.parse(read(path, String)))))
       end
max_ver_number (generic function with 1 method)

julia> max_ver_number("DataFrames")
v"0.21.4"

julia> max_ver_number("CSV")
v"0.7.1"
此代码假定在运行此操作之前,您已更新了general registry的本地副本

注意,这里我假设只检查了
仓库路径[1]
(因此它不是完全通用的)。例如,对于stdlib,这将失败,例如:

julia> max_ver_number("Statistics")
ERROR: SystemError: opening file "/home/bkamins/.julia/registries/General/S/Statistics/Versions.toml": No such file or directory
然而,我假设对于典型的用例,所建议的应该足够了