используя Gadfly с Джулией, установленной в conda - PullRequest
1 голос
/ 17 апреля 2019

Для будущего использования в контексте jupyter, я хочу попробовать julia через установку conda. Для этого я сделал следующее:

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. Будучи немного новым для Конды и Джулии, я не могу понять, почему у меня есть эта ошибка и как ее решить. Есть ли у вас идеи?

Ответы [ 2 ]

1 голос
/ 17 апреля 2019

Установите Julia через установщик Julia и создайте ссылку Julia => Conda, а не Conda => Julia.В настоящее время все основные проблемы интеграции Julia => Conda, похоже, решены и работают без сбоев.Это также стандартный способ работы Python-Julia, так что в этом сценарии также будут обновляться быстрее.

Поскольку вы, вероятно, захотите приклеить Julia к существующей установке Anaconda (а не устанавливать частную Anaconda для своей Julia).это опция по умолчанию) вам нужно установить переменную окружения PYTHON (это можно сделать в оболочке или с помощью следующих команд Julia):

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

Теперь вы можете нажать ] для диспетчера пакетов, и этоэто то, что вы обычно хотите выполнить:

(v1.0) pkg> add PyCall Conda PyPlot

Теперь у вас будет интеграция с внешней Анакондой.Глядя на ваш вопрос, это лучший сценарий.

0 голосов
/ 27 мая 2019

Похоже, это может быть эта известная проблема .Основываясь на обсуждении этой проблемы, я установил ее на своем компьютере, установив openblas и добавив следующую ссылку:

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

(Обратите внимание, что я не использую conda, я использовал стандартный пакет Arch.)

...