julia - 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)
解决方案
Fredrik 的评论真的应该是这里的答案,所以我会稍微扩展一下:
当你这样做时] add SomePackage
,Julia 的包管理器将搜索General Registry以查找包,然后安装它。正如您在查看通用注册表中的M
条目时将看到的那样,MLPlots
未注册,因此您会看到“在...注册表中找不到”错误。
现在应该注意的是,软件包不必安装在通用注册表中即可安装 - 通用注册表只是默认注册表,并且在很大程度上是 Julia 生态系统中的便利工具,它提供了检查包的默认位置和对已注册的软件包强制执行某些标准,以确保事物之间可以很好地相互配合。话虽如此,没有什么能阻止你
添加不同的注册表:如Pkg.jl 文档介绍中所述,“它允许由不同方管理的多个注册表无缝交互。特别是,这包括可以存在于公司防火墙后面的私有注册表。其中一个例子是JuliaPro 注册表,它提供了常规注册表的精选子集;
只需添加一个未在任何地方注册的包,无论是从本地路径还是使用 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
从 v1.0 开始,Julia 要求包附带一个“项目”文件 ( Project.toml
),该文件指定包依赖项,包括(至少作为最佳实践,对于通用注册表中的包)兼容性边界。由于您正在查看的包最后一次工作是在 5 年前,它不是 Julia 当前包管理器可以处理的格式。
看看包本身,我也会说这不一定是问题 - 不是想把在 Julia 绘图生态系统中做出杰出和开创性工作的 Tom 敲到这里,但这个特定的包似乎有点证明- 不提供大量功能的概念。也许如果您在Julia Discourse上发布一些更开放的请求,以寻求帮助解决您试图解决的任何问题,人们可以将您指向生态系统中当前最先进的软件包。
我将在这里补充一点,目前 Julia 中标准机器学习的中心包可能是MLJ.jl,其中包含一个roc_curve
可以为您在自述文件ROCAnalysis
中看到的绘图提供基础的函数。MLPlots
推荐阅读
- azure - 如何使用 Odata 链接服务将文件从共享点复制到 blob 存储 Azure 数据工厂 v2
- bash - 如何将 bash 脚本作为命令运行?
- python-3.x - 网格中的关键事件检测 - wxPython
- hyperlink - Django REST Framework - 列出具有可能操作的项目
- c# - 如何在我的类(模型)中公开用户,或在我的视图中列出所有用户?
- java - 使用 gradle 运行时,杰克逊子类型的反序列化失败
- r - R - 查找只有一个非缺失值的列,并用该唯一非缺失值填充其缺失值
- android - Jet Pack:导航如何在呈现的活动被解雇时得到通知?
- javascript - 调用者没有从带有 ajax 的异步方法中获得正确的值
- google-bigquery - 在 BigQuery 中将数组转换为嵌套字段