1

几个月前我曾在一个项目中使用过 Julia,但从那以后就没有再使用它了。那时我还没有遇到问题。但是现在,我绝对无法安装任何软件包。

(@v1.5) pkg> add Distributions                                                                                           
  Resolving package versions...                                                                                         
 ERROR: Unsatisfiable requirements detected for package Distributions [31c24e10]:                                         
 Distributions [31c24e10] log:                                                                                           
 ├─Distributions [31c24e10] has no known versions!                                                                       
 └─restricted to versions * by an explicit requirement — no versions left

我安装的任何软件包,我都会遇到同样的错误。我如何解决它?

这是 Pkg 的状态:

(@v1.5) pkg> status                                                                                                     
Status `C:\Users\jaine\.julia\environments\v1.5\Project.toml`                                                             
[6e4b80f9] BenchmarkTools v0.5.0                                                                                        
[7073ff75] IJulia v1.21.2                                                                                               
[91a5bcdd] Plots v1.6.0                                                                                                 
[438e738f] PyCall v1.91.4                                                                                               
[d330b81b] PyPlot v2.9.0                                                                                                
[2913bbd2] StatsBase v0.33.0 
4

2 回答 2

4

给定

├─Distributions [31c24e10] has no known versions!

看起来您的软件包注册表丢失或损坏。.julia/registries如果您删除并尝试再次添加包,包管理器将为您重新安装它。您可以在 Julia 中执行此操作

rm(joinpath(homedir(), ".julia", "registries"), recursive=true, force=true)
于 2021-01-11T17:08:52.387 回答
1

这些确实是一些需要解决的更棘手的情况,所以在我们解决这个问题时请多多包涵。

  1. 如果您不熟悉包管理器的基础知识,值得快速阅读一下:https ://julialang.github.io/Pkg.jl/v1/getting-started/

  2. 假设您现在在 Julia Repl 中,我针对这些问题的一般工作流程是删除它警告我的所有内容。这里的核心问题是您现有的软件包之一说它需要特定版本的 Distributions.jl 但它无法添加它。因此,第一步是通过执行]并键入来进入 pkg 管理器rm Distributions

  3. 然后,在仍处于 pkg 模式时,执行resolveadd Distributions

所以这个过程就是删除 Repl 抱怨的每个包,直到它停止抱怨。

注意:如果您再次遇到类似的情况,最坏的情况是删除您正在使用的特定 Julia 版本的项目和清单文件。如果您导航到“.julia/environments”,您应该能够在那里为特定版本完全重置 Julia Env(这样您就不需要实际重新安装 Julia)。

于 2021-01-11T16:03:47.453 回答