如何帮助iJulia笔记本找到一个外部编译的库

时间:2017-01-11 05:42:09

标签: julia ijulia-notebook mxnet.jl

我正在尝试在iJulia笔记本中运行mxnet的编译版本,但是当我执行命令using MXNet时,我收到以下错误:

InitError: error compiling __init__: error compiling _populate_symbol_creator_cache!: error compiling _get_atomic_symbol_creators: could not load library "/home/milton/mxnet/lib/libmxnet.so"
libcudart.so.7.5: cannot open shared object file: No such file or directory
during initialization of module mx

in _include_from_serialized(::String) at ./loading.jl:150
in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187
in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217
in require(::Symbol) at ./loading.jl:371

确定它可能是ENV被清除,我补充道:

ENV["MXNET_HOME"] = "/home/milton/mxnet"
ENV["LD_LIBRARY_PATH"] = "/home/milton/mxnet/lib:/usr/local/cuda/lib64"

这允许我无错误地执行指令using MXNet,但在尝试执行mxnet库中的任何命令时再次引发错误

error compiling #Variable#215: could not load library "/home/milton/programming/mxnet/lib/libmxnet.so"
libcudart.so.7.5: cannot open shared object file: No such file or directory

in Variable(::Symbol) at /home/milton/.julia/v0.5/MXNet/src/symbolic-node.jl:232

我该如何解决这个问题?我还需要在其他地方定义路径吗? REPL一切正常。

1 个答案:

答案 0 :(得分:1)

我在GitHub上得到了一些帮助。我在那里了解到,LD_LIBRARY_PATH由动态链接加载程序处理,并在程序启动时修复,如此SO question的答案中所述。即使它在笔记本电脑中弄乱时看起来有所改变,但事实并非如此。

为了实现这一点,我在终端中使用正确的jupyter-notebook设置启动LD_LIBRARY_PATH(在我的情况下,我的.bashrc会自动包含我编译的mxnet/lib的路径,所以它适用于任何本地终端。它不在我的全局设置中。)