首页 > 解决方案 > Julia ArgumentError:在当前路径中找不到包 RCall:

问题描述

我刚刚打开了一个新的 Jupyter 笔记本,想加载一些库。

using LinearAlgebra
using SparseArrays
using Statistics
using StatsBase
using RCall

每次我运行单元格时,我都会不断收到相同的错误:

ArgumentError: Package StatsBase not found in current path:
- Run `import Pkg; Pkg.add("StatsBase")` to install the StatsBase package.

所以我运行建议的命令:

import Pkg; Pkg.add("StatsBase")

我重新运行顶部单元格,我收到一个新错误:

ArgumentError: Package RCall not found in current path:
- Run `import Pkg; Pkg.add("RCall")` to install the RCall package.

我不明白为什么我会收到这些错误消息,因为之前已经安装了这些软件包。如果我在另一个目录中打开我预先存在的 Jupyter 笔记本之一,则不会发生此错误。但是,如果我在终端中运行 Julia,我会遇到同样的错误。似乎它在某些目录中工作,而不是在其他目录中。什么可能导致问题?

标签: juliajupyter-lab

解决方案


Julia 可以有许多虚拟环境。Julia 虚拟环境有自己的包安装状态,独立于全局环境。

与 Python 不同,每个环境只是在本地硬盘驱动器中保留指向包存储库的链接,而不是包含每个包的完整副本。

环境在Project.toml文件中定义。

只需运行Pkg.status()以检查您当前正在使用的环境(这次它显示了我的全局环境):

julia> Pkg.status()
      Status `C:\JuliaPkg\Julia-1.6.1\environments\v1.6\Project.toml`
  [6e4b80f9] BenchmarkTools v1.1.0
  [1e616198] COSMO v0.8.1
  [336ed68f] CSV v0.8.5
  ...

对于 Jupyter 笔记本,这些定义在与笔记本Project.toml位于同一文件夹中的 中。这很可能是您的问题的根源,也是您观察到“奇怪”的软件包安装状态的原因。

Procet.toml文件通常在您激活文件夹时创建:

julia> using Pkg

julia> Pkg.activate(".")
  Activating new environment at `C:\SomeMyFolder\Project.toml`

但是,当您运行 Jupyter(例如notebook(dir="."))时,会在当前文件夹中找到文件的位置Pkg.activate(".")自动发生。Project.toml


推荐阅读