package.version 不匹配

package.version mismatch

我正在尝试解决 this issue

我了解我的软件包版本已过时 (v1.7.2)。 但是,包管理器认为我使用的是最新版本 (v2.3.1)。

(@v1.7) pkg> up
    Updating registry at `~/.julia/registries/General.toml`
  No Changes to `~/.julia/environments/v1.7/Project.toml`
  No Changes to `~/.julia/environments/v1.7/Manifest.toml`

(@v1.7) pkg> st Parsers
      Status `~/.julia/environments/v1.7/Project.toml`
  [69de0a69] Parsers v2.3.1

julia> using Parsers

julia> Parsers.VERSION
v"1.7.2"

如果我uninstall/reinstall问题仍然存在:

(@v1.7) pkg> rm Parsers
    Updating `~/.julia/environments/v1.7/Project.toml`
  [69de0a69] - Parsers v2.3.1
  No Changes to `~/.julia/environments/v1.7/Manifest.toml`

julia> using Parsers
 │ Package Parsers not found, but a package named Parsers is available from a registry. 
 │ Install package?
 │   (@v1.7) pkg> add Parsers 
 └ (y/n) [y]: y
   Resolving package versions...
    Updating `~/.julia/environments/v1.7/Project.toml`
  [69de0a69] + Parsers v2.3.1
  No Changes to `~/.julia/environments/v1.7/Manifest.toml`
julia> using Parsers

julia> Parsers.VERSION
v"1.7.2"

PackageName.VERSION,与它直观的样子相反,它不会给你包的版本——它给你当前安装的 Julia 的版本。所以 v"1.7.2" 指的是你安装的 Julia 版本——你可以通过加载任何其他包并在它们上尝试 LoadedPackage.VERSION 来验证这一点,这应该 return 相同的值。 (我不确定这种设计的原因 - 让 VERSION 成为每个模块的成员 - 但也许 VERSION 在每个模块名称空间中作为本地名称可用有一些价值。)

所以您确实安装了 2.3.1 版的解析器,如包管理器所示。您最初问题的根源一定是其他原因 - 也许值得作为一个单独的问题提出。