Jupyter 实验室:添加内核 1.3 后内核 1.0 的预编译错误
Jupyter Lab: Precompile error for kernel 1.0 after adding kernel 1.3
在 Ubuntu 18.04 Intel 系统上,我的 Jupyter Lab 运行 使用 Julia 1.0.4 内核顺利运行。我想添加1.3内核。我从官方下载站点下载了 64 位 linux 二进制文件。我 运行 二进制文件,并给出命令 Using Pkg;Pkg.add("IJulia");Pkg.build("IJulia") 没有错误。
当我 运行 Jupyter Lab 和 select 1.0.4 notebook 时,系统尝试预编译 IJulia 并出现以下错误:
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: InitError: error compiling __init__: could not load library "/home/cc/.julia/packages/ZMQ/ABGOx/deps/usr/lib/libzmq.so"
/home/cc/.julia/packages/ZMQ/ABGOx/deps/usr/lib/libzmq.so: wrong ELF class: ELFCLASS64
Stacktrace:
[1] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:633
[2] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:713
[3] _require(::Base.PkgId) at ./loading.jl:937
[4] require(::Base.PkgId) at ./loading.jl:858
[5] require(::Module, ::Symbol) at ./loading.jl:853
[6] include at ./boot.jl:317 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1044
[8] include(::Module, ::String) at ./sysimg.jl:29
[9] top-level scope at none:2
[10] eval at ./boot.jl:319 [inlined]
[11] eval(::Expr) at ./client.jl:393
[12] top-level scope at ./none:3
during initialization of module ZMQ
in expression starting at /home/cc/.julia/packages/IJulia/F1GUo/src/IJulia.jl:36
ERROR: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to /home/cc/.julia/compiled/v1.0/IJulia/nfu7T.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1203
[3] _require(::Base.PkgId) at ./loading.jl:960
[4] require(::Base.PkgId) at ./loading.jl:858
[5] require(::Module, ::Symbol) at ./loading.jl:853
[6] include at ./boot.jl:317 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1044
[8] include(::Module, ::String) at ./sysimg.jl:29
[9] exec_options(::Base.JLOptions) at ./client.jl:266
[10] _start() at ./client.jl:425
in expression starting at /home/cc/.julia/packages/IJulia/F1GUo/src/kernel.jl:1
[I 20:20:45.777 LabApp] KernelRestarter: restarting kernel (1/5), keep random ports
内核 1.3 笔记本似乎 运行 正常。
关于如何解决这个问题有什么想法吗?
可能您将 julia 1.0.4 安装为 32 位。您可以通过启动 julia 并输入 sizeof(Int)
来检查这一点。如果是returns4,那么就是32位二进制。当您安装 julia 1.3.0 和 IJulia 时,它用 64 位库覆盖了 32 位 libzmq.so 库,而 64 位库不能在 julia 1.0.4 中使用。
如果是这种情况,我建议您将 32 位 julia 1.0.4 替换为 64 位版本。
我已通过将 1.0.4 内核替换为长期支持内核 1.0.5 来解决此问题。
在 Ubuntu 18.04 Intel 系统上,我的 Jupyter Lab 运行 使用 Julia 1.0.4 内核顺利运行。我想添加1.3内核。我从官方下载站点下载了 64 位 linux 二进制文件。我 运行 二进制文件,并给出命令 Using Pkg;Pkg.add("IJulia");Pkg.build("IJulia") 没有错误。
当我 运行 Jupyter Lab 和 select 1.0.4 notebook 时,系统尝试预编译 IJulia 并出现以下错误:
[ Info: Precompiling IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a]
ERROR: LoadError: InitError: error compiling __init__: could not load library "/home/cc/.julia/packages/ZMQ/ABGOx/deps/usr/lib/libzmq.so"
/home/cc/.julia/packages/ZMQ/ABGOx/deps/usr/lib/libzmq.so: wrong ELF class: ELFCLASS64
Stacktrace:
[1] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:633
[2] _require_search_from_serialized(::Base.PkgId, ::String) at ./loading.jl:713
[3] _require(::Base.PkgId) at ./loading.jl:937
[4] require(::Base.PkgId) at ./loading.jl:858
[5] require(::Module, ::Symbol) at ./loading.jl:853
[6] include at ./boot.jl:317 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1044
[8] include(::Module, ::String) at ./sysimg.jl:29
[9] top-level scope at none:2
[10] eval at ./boot.jl:319 [inlined]
[11] eval(::Expr) at ./client.jl:393
[12] top-level scope at ./none:3
during initialization of module ZMQ
in expression starting at /home/cc/.julia/packages/IJulia/F1GUo/src/IJulia.jl:36
ERROR: LoadError: Failed to precompile IJulia [7073ff75-c697-5162-941a-fcdaad2a7d2a] to /home/cc/.julia/compiled/v1.0/IJulia/nfu7T.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1203
[3] _require(::Base.PkgId) at ./loading.jl:960
[4] require(::Base.PkgId) at ./loading.jl:858
[5] require(::Module, ::Symbol) at ./loading.jl:853
[6] include at ./boot.jl:317 [inlined]
[7] include_relative(::Module, ::String) at ./loading.jl:1044
[8] include(::Module, ::String) at ./sysimg.jl:29
[9] exec_options(::Base.JLOptions) at ./client.jl:266
[10] _start() at ./client.jl:425
in expression starting at /home/cc/.julia/packages/IJulia/F1GUo/src/kernel.jl:1
[I 20:20:45.777 LabApp] KernelRestarter: restarting kernel (1/5), keep random ports
内核 1.3 笔记本似乎 运行 正常。
关于如何解决这个问题有什么想法吗?
可能您将 julia 1.0.4 安装为 32 位。您可以通过启动 julia 并输入 sizeof(Int)
来检查这一点。如果是returns4,那么就是32位二进制。当您安装 julia 1.3.0 和 IJulia 时,它用 64 位库覆盖了 32 位 libzmq.so 库,而 64 位库不能在 julia 1.0.4 中使用。
如果是这种情况,我建议您将 32 位 julia 1.0.4 替换为 64 位版本。
我已通过将 1.0.4 内核替换为长期支持内核 1.0.5 来解决此问题。