如何从 Elixir 调用 3rd 方 Erlang 模块?

How to call 3rd party Erlang module from Elixir?

我有一个使用 mix 的 Elixir 项目。我已经使用了一些内置的 erlang 模块,但现在我需要使用我在 Github 上找到的第三方模块。

如何从 Elixir 导入、构建和调用第三方 Erlang 模块?

编辑:我现在感兴趣的模块位于 https://github.com/aggelgian/erlang-algorithms ,特别是 edmonds_karp 模块。

在 elixir 中添加第三方 erlang 包非常容易。如果包不在 Hex.pm 上,那么您可以只使用 github url。例如。在 mix.exs:

defp deps do
  [
    {:erlang_algorithms, github: 'aggelgian/erlang-algorithms'},
  ]
end

那你就可以运行mix deps.get

但是在您的情况下,这将失败,因为该包没有应用程序文件。要解决此问题,请将以上内容更改为:

  defp deps do
    [
      {:erlang_algorithms, github: 'aggelgian/erlang-algorithms', app: false},
    ]
  end

然后再运行 mix deps.get.

现在您可以访问包中可用的 erlang 模块:

例如

:dfs.run(arg1, arg2)