我试图在Xubuntu 16.04上安装IElixir Jupyter笔记本内核。我之前在使用Xubuntu 16.04的另一台机器上成功完成了它。
我有最新的erlang otp 19.3和elixir 1.4.4(使用kiex安装)。
执行mix test
后,我收到有关未定义:erlzmq_nif.context/1
函数的错误:
** (Mix) Could not start application ielixir: exited in: IElixir.start(:normal, [])
** (EXIT) an exception was raised:
** (UndefinedFunctionError) function :erlzmq_nif.context/1 is undefined (module :erlzmq_nif is not available)
:erlzmq_nif.context(1)
(ielixir) lib/ielixir.ex:13: IElixir.start/2
(kernel) application_master.erl:273: :application_master.start_it_old/4
事情是所有依赖项都已成功安装,我可以在:erlzmq_nif.context/1
中使用iex
:
iex(1)> :erlzmq_nif.context 1
{:ok, ""}
iex(2)>
我已将erlzmq
的版本复制到/usr/lib/erlang/lib
,以便我也可以在erlang中使用它:
1> erlzmq_nif:context(3).
{ok,<<>>}
2>
为什么使用mix时这个lib对elixir不可见?
答案 0 :(得分:0)
我没有解决这个问题,我已经设法让 IElixir 工作了。
我所做的是用:erlzmq
mix.exs
替换github: "zeromq/erlzmq"
依赖项(在回购名称中注意没有2
),这可能不会超过erlzmq2
因为它不是基于NIF的,但至少它没有问题。