Circuitscape / Circuitscape.jl

Algorithms from circuit theory to predict connectivity in heterogeneous landscapes
https://circuitscape.org
MIT License
128 stars 35 forks source link

Install Error due to GDAL: libgdal-28.dll module could not be found #329

Closed aeduckworth closed 2 years ago

aeduckworth commented 2 years ago

I am getting errors with install of Circuitscape v5.9.1. Previous versions had installed and run successfully. I removed Julia and all packages, reinstalled Julia and tried installing Circuitscape again. The error persists. Circuitscape v5.9.1 and Julia v1.6.3

The .dll that the error is looking for appears to be there. (See attachment below).

Text showing install error:

Precompiling project...
  ✗ GDAL
  ✗ ArchGDAL
  75 dependencies successfully precompiled in 33 seconds (7 already precompiled)
  2 dependencies errored. To see a full report either run `import Pkg; Pkg.precompile()` or load the packages

julia> using Circuitscape
[ Info: Precompiling Circuitscape [2b7a1792-8151-5239-925d-e2b8fdfa3201]
ERROR: LoadError: InitError: could not load library "C:\Users\aduckworth\.julia\artifacts\8345a5972a124865a058c4e046b84305f9e2787c\bin\libgdal-28.dll"
The specified module could not be found.
Stacktrace:
  [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
    @ Base.Libc.Libdl .\libdl.jl:114
  [2] dlopen(s::String, flags::UInt32)
    @ Base.Libc.Libdl .\libdl.jl:114
  [3] macro expansion
    @ C:\Users\aduckworth\.julia\packages\JLLWrappers\bkwIo\src\products\library_generators.jl:54 [inlined]
  [4] __init__()
    @ GDAL_jll C:\Users\aduckworth\.julia\packages\GDAL_jll\WxCDm\src\wrappers\x86_64-w64-mingw32-cxx11.jl:110
  [5] _include_from_serialized(path::String, depmods::Vector{Any})
    @ Base .\loading.jl:696
  [6] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String)
    @ Base .\loading.jl:782
  [7] _require(pkg::Base.PkgId)
    @ Base .\loading.jl:1020
  [8] require(uuidkey::Base.PkgId)
    @ Base .\loading.jl:936
  [9] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:923
 [10] include
    @ .\Base.jl:386 [inlined]
 [11] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base .\loading.jl:1235
 [12] top-level scope
    @ none:1
 [13] eval
    @ .\boot.jl:360 [inlined]
 [14] eval(x::Expr)
    @ Base.MainInclude .\client.jl:446
 [15] top-level scope
    @ none:1
during initialization of module GDAL_jll
in expression starting at C:\Users\aduckworth\.julia\packages\GDAL\B6kyy\src\GDAL.jl:1
ERROR: LoadError: Failed to precompile GDAL [add2ef01-049f-52c4-9ee2-e494f65e021a] to C:\Users\aduckworth\.julia\compiled\v1.6\GDAL\jl_2DE8.tmp.
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:33
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::Base.TTY, internal_stdout::Base.TTY, ignore_loaded_modules::Bool)
    @ Base .\loading.jl:1385
  [3] compilecache(pkg::Base.PkgId, path::String)
    @ Base .\loading.jl:1329
  [4] _require(pkg::Base.PkgId)
    @ Base .\loading.jl:1043
  [5] require(uuidkey::Base.PkgId)
    @ Base .\loading.jl:936
  [6] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:923
  [7] include
    @ .\Base.jl:386 [inlined]
  [8] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::String)
    @ Base .\loading.jl:1235
  [9] top-level scope
    @ none:1
 [10] eval
    @ .\boot.jl:360 [inlined]
 [11] eval(x::Expr)
    @ Base.MainInclude .\client.jl:446
 [12] top-level scope
    @ none:1
in expression starting at C:\Users\aduckworth\.julia\packages\ArchGDAL\zkx2f\src\ArchGDAL.jl:1
ERROR: LoadError: Failed to precompile ArchGDAL [c9ce4bd3-c3d5-55b8-8973-c0e20141b8c3] to C:\Users\aduckworth\.julia\compiled\v1.6\ArchGDAL\jl_2CDE.tmp.
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:33
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::Base.TTY, internal_stdout::Base.TTY, ignore_loaded_modules::Bool)
    @ Base .\loading.jl:1385
  [3] compilecache(pkg::Base.PkgId, path::String)
    @ Base .\loading.jl:1329
  [4] _require(pkg::Base.PkgId)
    @ Base .\loading.jl:1043
  [5] require(uuidkey::Base.PkgId)
    @ Base .\loading.jl:936
  [6] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:923
  [7] include
    @ .\Base.jl:386 [inlined]
  [8] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt64}}, source::Nothing)
    @ Base .\loading.jl:1235
  [9] top-level scope
    @ none:1
 [10] eval
    @ .\boot.jl:360 [inlined]
 [11] eval(x::Expr)
    @ Base.MainInclude .\client.jl:446
 [12] top-level scope
    @ none:1
in expression starting at C:\Users\aduckworth\.julia\packages\Circuitscape\k8j7I\src\Circuitscape.jl:2
ERROR: Failed to precompile Circuitscape [2b7a1792-8151-5239-925d-e2b8fdfa3201] to C:\Users\aduckworth\.julia\compiled\v1.6\Circuitscape\jl_2BF4.tmp.
Stacktrace:
 [1] error(s::String)
   @ Base .\error.jl:33
 [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::Base.TTY, internal_stdout::Base.TTY, ignore_loaded_modules::Bool)
   @ Base .\loading.jl:1385
 [3] compilecache(pkg::Base.PkgId, path::String)
   @ Base .\loading.jl:1329
 [4] _require(pkg::Base.PkgId)
   @ Base .\loading.jl:1043
 [5] require(uuidkey::Base.PkgId)
   @ Base .\loading.jl:936
 [6] require(into::Module, mod::Symbol)
   @ Base .\loading.jl:923

211101_Circuitscape_Error

vlandau commented 2 years ago

Looks like this is a current known issue with GDAL.jl and the GDAL binary installer: https://github.com/JuliaGeo/GDAL.jl/issues/126

Hopefully they will have it fixed soon.

ranjanan commented 2 years ago

Looks like https://github.com/JuliaRegistries/General/pull/47879 is merged. This should be fixed with a new version

ranjanan commented 2 years ago

I am not getting this anymore. @aeduckworth could you just do a Pkg.update() and see if things work?

aeduckworth commented 2 years ago

Thanks so much. Should have availability on the relevant computer in the next day or so and I will confirm.

aeduckworth commented 2 years ago

Issue is resolved with Pkg.update(). Thanks again!