Elixir 库应用程序脚本路径

Max*_*nge 2 elixir-mix elixir

我有一个 Python 脚本,作为我正在编写的 Elixir 库的一部分运行 - 也就是说,在启动应用程序时,我System.cmd("python", [path/to/script], [])在我的 start_link 函数之一中运行。

我将该脚本安装在用户的 deps/mylibrary/lib 文件夹中。

path/to/script是我不知道该怎么做的部分 - 我可以通过评估System.cwd()和查看结果来推断脚本所在的位置,但这似乎是错误的。

我认为必须有一种方法可以使用 Mix 来做到这一点。

Dog*_*ert 6

库/包在运行时所需的文件应存储在该priv/文件夹中。该目录中的所有内容都将出现在 Distillery 创建的 Erlang 版本中。在运行时,您可以使用返回的路径来了解包的目录:code.priv_dir/1位置。priv

因此,如果您的 Python 脚本位于 中priv/foo/bar.py,您可以使用以下命令获取该文件的绝对路径:

Path.join(:code.priv_dir(:my_package), "foo/bar.py")
Run Code Online (Sandbox Code Playgroud)

其中:my_package是你的包的名称。