#julia
#julia
Вопрос:
julia> using RCall
[ Info: Precompiling RCall [6f49c342-dc21-5d91-9882-a32aef131414]
ERROR: LoadError: RCall not properly installed. Please run Pkg.build("RCall")
Stacktrace:
[1] error(::String) at .error.jl:33
[2] top-level scope at C:Usersnicho.juliapackagesRCalleRsxlsrcRCall.jl:36
[3] include(::Function, ::Module, ::String) at .Base.jl:380
[4] include(::Module, ::String) at .Base.jl:368
[5] top-level scope at none:2
[6] eval at .boot.jl:331 [inlined]
[7] eval(::Expr) at .client.jl:467
[8] top-level scope at .none:3
in expression starting at C:Usersnicho.juliapackagesRCalleRsxlsrcRCall.jl:33
ERROR: Failed to precompile RCall [6f49c342-dc21-5d91-9882-a32aef131414] to C:Usersnicho.juliacompiledv1.5RCall8GFyb_RACSn.ji.
Stacktrace:
[1] error(::String) at .error.jl:33
[2] compilecache(::Base.PkgId, ::String) at .loading.jl:1305
[3] _require(::Base.PkgId) at .loading.jl:1030
[4] require(::Base.PkgId) at .loading.jl:928
[5] require(::Module, ::Symbol) at .loading.jl:923
Установите переменную среды «R_HOME», и пакет установлен, но предварительная компиляция не сработала корректно.
Ответ №1:
Вам нужно выполнить сборку RCall
после установки R_HOME
, а не просто перекомпилировать ее. Пожалуйста, также обратите внимание, что это R_HOME
должно указывать на место установки R, а не на исполняемый файл.
Следовательно, правильные команды могут выглядеть следующим образом:
ENV["R_HOME"]="/your/R/installation/directory/path"
using Pkg
Pkg.build("RCall")
using RCall
Комментарии:
1. В частности,
R RHOME
будет использоватьсяR
в вашем path, чтобы показать егоRHOME
каталог, который, как отмечено здесь, является верхним уровнем его установки, а не путем к интерфейсному скрипту или двоичному файлу или … Это работает одинаково во всех операционных системах, но Windows, как мы знаем, немного особенная из-за отсутствия общего$PATH
.2. Спасибо за ваш подробный ответ! У меня есть следующий вопрос. Почему мне нужно создавать RCall перед его использованием, в то время как для других пакетов я никогда не выполнял шаг «сборки»?
3. Вы всегда выполняете этап сборки — это делается при установке пакета. См. Раздел «Создание пакетов» на julialang.github.io/Pkg.jl/v1.5/managing-packages Для некоторых пакетов при изменении конфигурации вам необходимо собрать их снова — другим примером может быть PyCall