2

Julia 的 Pluto Notebook 一直说要更新它。我直接从 Pluto 更新它,关闭它,重新启动它,它说要再次更新它。试了 3 次。这是一个错误吗?另外,冥王星太光秃了,我找不到它的命令。某处是否有命令托盘,以便我可以发出 versioninfo 命令?该命令只给了我 Julia 版本,而不是 Pluto 版本。

4

1 回答 1

1

很难确定,当然这是难以重现的问题之一,但我认为可能发生的是你在 Pluto 0.15 上,它会自动为每个笔记本创建一个可重现的环境,留下你的全局包不受包操作影响的环境。

您需要确保在启动笔记本的任何环境中更新 Pluto,即假设您从全局环境启动 Pluto(因此您只需julia在终端中启动,然后直接执行using Pluto; Pluto.run())确保您] up在运行 Pluto 之前的全局环境。] st在启动 Pluto 之前还要检查一下您使用的是哪个版本。

举一个完整的例子,这是我的全球 1.6 环境,其中只有冥王星:

(@v1.6) pkg> st
      Status `~/.julia/environments/v1.6/Project.toml`
  [c3e4b0f8] Pluto v0.15.1

然后我开始一个新的笔记本:

julia> using Pluto

julia> Pluto.run()

Opening http://localhost:1234/?secret=fqgaVM5N in your default browser... ~ have fun!

Press Ctrl+C in this terminal to stop Pluto

现在,如果我想知道我的笔记本环境中安装的软件包的软件包版本,我可以这样做:

在此处输入图像描述

它在我启动 Pluto 的终端中产生以下输出:

   Resolving package versions...
    Updating `/tmp/jl_nvrbqO/Project.toml`
  [44cfe95a] + Pkg
    Updating `/tmp/jl_nvrbqO/Manifest.toml`
  [0dad84c5] + ArgTools
  [56f22d72] + Artifacts

(...)

      Status `/tmp/jl_nvrbqO/Project.toml`
  [44cfe95a] Pkg

(...)这里的using Pkg第一个位(在. 请注意,我的环境路径是,这与我启动 Pluto 的路径不同(它们的名称与 Pluto 相似,我相信使用相同的功能为笔记本创建临时环境)。PkgProject.tomlManifest.toml/tmp/jl_nvrbqO/Project.toml~/.julia/environments/v1.6/Project.tomlPkg

这意味着如果我现在将 Pluto 添加到这个环境并在那里更新它,它将使我实际启动 Pluto 的环境不受影响,所以下次我从同一个全局环境启动 Pluto 时,它会相同(未更新)的版本。因此,不收到警告的关键是在我实际做]up的环境中做,而不是在笔记本本身内做。@v1.6using Pluto; Pluto.run()

希望这是有道理的!

于 2021-07-31T09:20:27.607 回答