将Gadfly与conda安装的julia一起使用

时间:2019-04-17 09:23:21

标签: anaconda julia conda miniconda

为了将来在jupyter环境中使用,我想通过conda安装尝试julia。为此,我执行了以下操作:

conda create -n test_julia
conda activate test_julia
conda install -c conda-forge julia

从那里我可以开始茱莉亚。但是,当尝试使用gadfly模块进行基本测试图时,出现以下错误:

julia>using Pkg
julia>Pkg.add("Gadfly")
julia>using Gadfly


Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc7.tar.gz to /home/pellegrini/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc7.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/pellegrini/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/pellegrini/.julia/packages/BinaryProvider/4F5Hq/src/Products.jl:414
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1044
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:392
│  [9] top-level scope at none:0
│ in expression starting at /home/pellegrini/.julia/packages/Arpack/UiiMc/deps/build.jl:74

我读到这个问题可能是由于使用了从源头建造的茱莉亚。 我认为使用conda安装时并非如此。对conda和julia有点陌生,我找不到为什么会有这个错误以及如何解决它。你有什么主意吗?

2 个答案:

答案 0 :(得分:1)

通过Julia安装程序安装Julia,并建立链接Julia => Conda而不是Conda => Julia。 当前,所有主要的Julia => Conda集成问题似乎都已解决并且可以无缝运行。这也是使用Python-Julia的一种标准方法,因此这种情况也将更快地获得更新。

由于您可能想将Julia粘贴到现有的Anaconda安装上(而不是为Julia单独安装一个私有的Anaconda,这是默认选项),因此需要设置PYTHON环境变量(可以在shell或以下命令中完成)朱莉娅命令):

#Windows:
julia> ENV["PYTHON"]="C:\\ProgramData\\Anaconda3\\python.exe"
#Linux
julia> ENV["PYTHON"]="~/anaconda3/bin/python"

现在,您可以按]作为包管理器,这通常是您要执行的操作:

(v1.0) pkg> add PyCall Conda PyPlot

现在,您将与外部Anaconda集成。 看着你的问题,这是最好的情况。

答案 1 :(得分:0)

听起来可能是this known issue。基于对这个问题的讨论,我通过安装openblas并添加以下链接将其固定在我的机器上:

ln -s /usr/lib/libopenblas.so /usr/lib/libopenblas64_.so.0

(请注意,我没有使用conda,而是使用了标准的Arch软件包。)