在UBUNTU 16.04中使用Julia1.2安装MXNet.jl时出现问题

在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.

我在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...
  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并使用它。如果我将所有其他部分理解为一个侧面效果,我会更好,但我会选择正确安装,因此,简而言之:

  • 我有什么问题
  • 我是否通过“复制和粘贴”文档步骤中的说明来修复它
  • 如果没有,如何安装MXNet.jl
  • 我是否正在将GPU与CPU(我的选项)安装相冲突?什么变化 两者之间?。我不认为这与这里发生的事情有任何关系,但是
  • 提前多谢,希望你们一切都好

    • UBUNTU 16.4
    编辑:

    在@Przemyslaw之后,我安装了最新的julia版本julia1.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不能解决
    .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