【问题标题】:Julia doesn't find packages in depot_path anymoreJulia 不再在 depot_path 中找到包
【发布时间】:2020-01-03 16:14:46
【问题描述】:

我在 Julia 中使用包时遇到问题。它以前工作过,我不确定为什么会改变或如何排除故障。

我有一个文件夹 /my_path/julia/packages 与 Julia 包。例如有一个文件夹 /my_path/julia/packages/FFTW/ 与 FFTW 包。 此外,我在启动 julia 之前通过分配 JULIA_DEPOT_PATH 将仓库路径更改为指向此目录,以便

Base.DEPOT_PATH = ["/my_path/julia/"]

但是,如果我运行 julia> using FFTW 我收到以下错误消息:

错误:ArgumentError:在当前路径中找不到包 FFTW: - 运行`import Pkg; Pkg.add("FFTW")` 来安装 FFTW 包。

知道如何解决或解决此问题吗?

【问题讨论】:

    标签: julia


    【解决方案1】:

    操纵Base.DEPOT_PATH 似乎不是一个好主意。 @cmc 提出的代码将不起作用(至少在 Julia 1.3.1 上):

    julia> Base.DEPOT_PATH = ["/some/path"]
    ERROR: cannot assign variables in other modules
    

    有一个解决方法:

    Base.DEPOT_PATH[1] = "/some/path"
    

    但是,正确的方法是在启动 Julia,Windows 之前分配 JULIA_DEPOT_PATH 系统变量:

    set JULIA_DEPOT_PATH=c:\some\path
    

    set JULIA_DEPOT_PATH=c:\some\path1;c:\some\path2
    

    Linux/OSX:

    export JULIA_DEPOT_PATH=/some/path
    

    export JULIA_DEPOT_PATH=/some/path1:/some/path2
    

    【讨论】:

    • 我的问题帖子不清楚,我会编辑它。实际上,在启动 julia 之前,我确实分配了 JULIA_DEPOT_PATH。
    【解决方案2】:

    除非您有特定的理由这样做(如果是这种情况,我很想听听!),您不需要摆弄 DEPOT_PATHLOAD_PATH 变量:使用 Julia 的package manager 应该足以满足您大部分时间的需求。

    在这种特定情况下,您是否尝试按照错误消息的提示进行操作?

    julia> import Pkg
    julia> Pkg.add("FFTW")
    

    【讨论】:

      【解决方案3】:

      LOAD_PATH,而不是DEPOT_PATH,将修改代码加载。

      你想做push!(LOAD_PATH, /my_path/julia/packages)之类的事情。

      我会回应@ffevotte 并强烈建议不要修改LOAD_PATH,除非必要。将依赖项组织到 Pkg 环境中的好处远远超过通过 Pkg.add 显式声明它们的小开销。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-27
        • 1970-01-01
        • 2014-06-17
        • 2016-05-13
        • 2022-01-19
        相关资源
        最近更新 更多