在UBUNTU 16.04中使用Julia1.2安装MXNet.jl时出现问题
我在julia中安装“MXNet.jl”包时遇到一些问题 1) 我第一次尝试打字:在UBUNTU 16.04中使用Julia1.2安装MXNet.jl时出现问题,julia,mxnet,julia-gpu,mxnet.jl,Julia,Mxnet,Julia Gpu,Mxnet.jl,我在julia中安装“MXNet.jl”包时遇到一些问题 1) 我第一次尝试打字: (v1.2) pkg> add MXNet 我明白了: (v1.2) pkg> add MXNet Updating registry at `~/.julia/registries/General` Updating git-repo `https://github.com/JuliaRegistries/General.git` Resolving package versions.
(v1.2) pkg> add MXNet
我明白了:
(v1.2) pkg> add MXNet
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.2/Project.toml`
[no changes]
Updating `~/.julia/environments/v1.2/Manifest.toml`
[no changes]
在这一点上,没有发生任何错误。没有抛出任何错误消息。美好的现在,我回到Julia REPL并尝试使用该模块,为此我写了:
julia> using MXNet
[ Info: Precompiling MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0]
ERROR: LoadError: LoadError: IOError: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:90 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:81
[3] touch(::String) at ./file.jl:404
[4] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:60
[5] include at ./boot.jl:328 [inlined]
[6] include_relative(::Module, ::String) at ./loading.jl:1094
[7] include at ./Base.jl:31 [inlined]
[8] include(::String) at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:25
[9] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
[10] include at ./boot.jl:328 [inlined]
[11] include_relative(::Module, ::String) at ./loading.jl:1094
[12] include(::Module, ::String) at ./Base.jl:31
[13] top-level scope at none:2
[14] eval at ./boot.jl:330 [inlined]
[15] eval(::Expr) at ./client.jl:432
[16] top-level scope at ./none:3
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:57
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
ERROR: Failed to precompile MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0] to /home/gbrunini/.julia/compiled/v1.2/MXNet/Sc0jU.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
[3] _require(::Base.PkgId) at ./loading.jl:1013
[4] require(::Base.PkgId) at ./loading.jl:911
[5] require(::Module, ::Symbol) at ./loading.jl:906
所有这些错误消息都会被抛出。知道我在所有这些错误上的局限性,我进行了第二次尝试,包括以下内容
2) 我的第二种方法是使用暴力,因此我将julia MXNet.jl包的所有github scr文件夹复制并粘贴到我个人桌面上的给定文件夹中。这是一个子例程一个子例程、一个文件夹一个文件夹地完成的,直到我复制了每个文件和文件夹。因此,可以公平地说,此链接中的scr文件夹:
现在看起来很像我的
现在,我转到我的文件夹并继续操作,就好像“MXNet.jl”是我过去使用的任何其他普通函数一样,所以我(在julia REPL上)键入:
它返回了所有这些错误消息
我的假设是,这个libmxnet有问题。因此(我不知道那是什么…)我很想在本文档中遵循步骤1-3,但我不想把事情搞砸,因为我真的不知道以下任何命令的作用:
sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux.cmake config.cmake # or config/linux_gpu.cmake for build with CUDA
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
以下任何一项对Julia也不起作用:
mkdir julia-depot
export JULIA_DEPOT_PATH=$HOME/julia/julia-depot
a) 什么是仓库?
b) 什么是环境变量(我在网上查了一下,这让我很困惑…)
我真的只想安装MXNet.jl并使用它。如果我将所有其他部分理解为一个侧面效果,我会更好,但我会选择正确安装,因此,简而言之:
- UBUNTU 16.4
.julia
的权限将得到修复。然而,问题仍然存在。我仍然收到以下消息:
(@v1.4) pkg> add MXNet
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.4/Project.toml`
[a7949054] + MXNet v1.5.0
Updating `~/.julia/environments/v1.4/Manifest.toml`
[9e28174c] + BinDeps v1.0.1
[682c06a0] + JSON v0.21.0
[a7949054] + MXNet v1.5.0
[69de0a69] + Parsers v1.0.2
[30578b45] + URIParser v0.4.1
[8ba89e20] + Distributed
[a63ad114] + Mmap
[8dfed614] + Test
julia> using MXNet
[ Info: Precompiling MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0]
ERROR: LoadError: LoadError: IOError: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:97 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:87
[3] touch(::String) at ./file.jl:422
[4] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:60
[5] include(::Module, ::String) at ./Base.jl:377
[6] include(::String) at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:25
[7] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:57
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
ERROR: Failed to precompile MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0] to /home/gbrunini/.julia/compiled/v1.4/MXNet/Sc0jU_ATtl5.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, sandybridge)
所以
.julia
上的问题MXNet.jl
是否是唯一需要重写的软件包.julia
在MXNet.jl的
base.jl
子例程中。知道这意味着什么吗?您的add MXNet
命令的输出显示它已经安装
但是,它无法预编译,因为您的进程没有足够的权限
您的Julia需要能够写入/home/gbrunini/.Julia/
,否则模块将无法预编译和加载。尝试设置权限并使用build MXNet
上面的文件夹是您的默认路径。您可以将该变量配置为将所有Julia包点存储在不同的位置,但这似乎不是您的问题(除非您由于其他原因无法为/home/gbrunini/.Julia/
配置权限)
由于Julia包有许多外部依赖项,所以暴力攻击aproach从来都不是一个好方法。在Julia 1.2版本中,它们是通过在运行包
build
时下载文件来管理的(这就是您应该重建的原因)。在当前的Julia中,有一个更优雅的Julia工件解决方案。Hi@Przemyslaw首先,感谢您的快速响应。我已经编辑了上面的问题,所以我们可以关注这个问题。基本上,我已经安装了最新的julia版本,问题仍然存在。。。你有什么见解吗?(以上是对我所做工作的一些解释)…在安装新版本的julia之后,你是否删除了/home/gbrunini/.julia/
文件夹?或者你仍然使用旧的一个与所有的软件包?
export MXNET_HOME=$HOME/incubator-mxnet
export LD_LIBRARY_PATH=$HOME/incubator-mxnet/lib:$LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD
export PATH=$HOME/bin:$HOME/.local/bin:$HOME/julia/julia-1.0.3/bin:$PATH
export JULIA_DEPOT_PATH=$HOME/julia/julia-depot
export MXNET_HOME=$HOME/incubator-mxnet
export LD_LIBRARY_PATH=$HOME/incubator-mxnet/lib:$LD_LIBRARY_PATH
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so:$LD_PRELOAD
julia --color=yes --project=./ -e \
'using Pkg; \
Pkg.develop(PackageSpec(name="MXNet", path = joinpath(ENV["MXNET_HOME"], "julia")))'
julia> versioninfo()
Julia Version 1.2.0
Commit c6da87ff4b (2019-08-20 00:03 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.1 (ORCJIT, sandybridge)
(@v1.4) pkg> add MXNet
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
Resolving package versions...
Updating `~/.julia/environments/v1.4/Project.toml`
[a7949054] + MXNet v1.5.0
Updating `~/.julia/environments/v1.4/Manifest.toml`
[9e28174c] + BinDeps v1.0.1
[682c06a0] + JSON v0.21.0
[a7949054] + MXNet v1.5.0
[69de0a69] + Parsers v1.0.2
[30578b45] + URIParser v0.4.1
[8ba89e20] + Distributed
[a63ad114] + Mmap
[8dfed614] + Test
julia> using MXNet
[ Info: Precompiling MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0]
ERROR: LoadError: LoadError: IOError: open: permission denied (EACCES)
Stacktrace:
[1] uv_error at ./libuv.jl:97 [inlined]
[2] open(::String, ::UInt16, ::UInt16) at ./filesystem.jl:87
[3] touch(::String) at ./file.jl:422
[4] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:60
[5] include(::Module, ::String) at ./Base.jl:377
[6] include(::String) at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:25
[7] top-level scope at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
[8] include(::Module, ::String) at ./Base.jl:377
[9] top-level scope at none:2
[10] eval at ./boot.jl:331 [inlined]
[11] eval(::Expr) at ./client.jl:449
[12] top-level scope at ./none:3
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/base.jl:57
in expression starting at /home/gbrunini/.julia/packages/MXNet/XoVCW/src/MXNet.jl:138
ERROR: Failed to precompile MXNet [a7949054-b901-59c6-b8e3-7238c29bf7f0] to /home/gbrunini/.julia/compiled/v1.4/MXNet/Sc0jU_ATtl5.ji.
Stacktrace:
[1] error(::String) at ./error.jl:33
[2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1272
[3] _require(::Base.PkgId) at ./loading.jl:1029
[4] require(::Base.PkgId) at ./loading.jl:927
[5] require(::Module, ::Symbol) at ./loading.jl:922
julia> versioninfo()
Julia Version 1.4.1
Commit 381693d3df* (2020-04-14 17:20 UTC)
Platform Info:
OS: Linux (x86_64-pc-linux-gnu)
CPU: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 (ORCJIT, sandybridge)
if isempty(MXNET_LIB)
# touch this file, so that after the user properly build libmxnet, the precompiled
# MXNet.ji will be re-compiled to get MXNET_LIB properly.
touch(@__FILE__)
error("Cannot find or load libmxnet.$(Libdl.dlext). " *
"Please see the document on how to build it.")
else
include_dependency(MXNET_LIB)
end