Julia 添加包会出现“包名称无法解析”错误

knd*_*ndr 3 julia

在 Julia 1.5.3 中,当我尝试使用此命令“] add MLPlots”添加 MLPlots 包时,出现以下错误:

ERROR: The following package names could not be resolved:
 * MLPlots (not found in project, manifest or registry)
Run Code Online (Sandbox Code Playgroud)

Nil*_*dat 5

Fredrik 的评论真的应该是这里的答案,所以我会稍微扩展一下:

当您这样做时] add SomePackage,Julia 的包管理器将搜索General Registry以查找包,然后安装它。正如您在查看通用注册表中的M条目时所看到的那样,MLPlots未注册,因此您会看到“在...注册表中找不到”错误。

现在应该指出的是,包不具备安装在要安装的一般登记-一般的注册表仅仅是默认的注册表,并在朱莉娅的生态系统提供的默认位置,检查包装并在很大程度上便利工具对注册的包强制执行某些标准,以确保事情彼此很好地发挥作用。话虽如此,没有什么能阻止你

  1. 添加不同的注册表:如Pkg.jl 文档介绍中所述,“它允许由不同方管理的多个注册表无缝交互。特别是,这包括可以位于公司防火墙后面的私有注册表。其中一个例子是JuliaPro 注册表,它提供了一般注册表的精选子集;

  2. 只需从本地路径或使用 GitHub(或等效服务,例如 GitLab)链接添加未在任何地方注册的包

虽然在这种情况下原则上第二个是一个选项,但此时 Fredrik 评论中提到的另一个问题变得相关:

(@v1.6) pkg> activate --temp
  Activating new environment at `/tmp/jl_pKGogE/Project.toml`

(jl_pKGogE) pkg> add https://github.com/JuliaML/MLPlots.jl
     Cloning git-repo `https://github.com/JuliaML/MLPlots.jl`
    Updating git-repo `https://github.com/JuliaML/MLPlots.jl`
ERROR: could not find project file in package at `https://github.com/JuliaML/MLPlots.jl` maybe `subdir` needs to be specified
Run Code Online (Sandbox Code Playgroud)

从 v1.0 开始,Julia 要求包附带一个“项目”文件 ( Project.toml),该文件指定包依赖项,包括(至少作为最佳实践,对于通用注册表中的包)兼容性界限。由于您正在查看的包上次使用是在 5 年前,因此它不是 Julia 当前的包管理器可以处理的格式。

看看包本身,我也想说这不一定是一个问题 - 不是想把在 Julia 绘图生态系统中做了杰出和开创性工作的 Tom 打到这里,但这个特定的包似乎有点证明- 不提供大量功能的概念。也许如果您在Julia Discourse上发布一些更开放的请求,以寻求帮助解决您试图解决的任何问题,人们可以将您指向生态系统中当前最先进的软件包。

我将在这里补充一点,目前 Julia 中标准机器学习的核心包可能是MLJ.jl,其中包含一个roc_curve函数,可以为您ROCAnalysisMLPlots自述文件中看到的情节提供基础。