Elixir库应用程序到脚本的路径

时间:2017-04-15 04:45:43

标签: elixir mix

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

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

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

我认为必须有一种方法可以使用Mix。

1 个答案:

答案 0 :(得分:2)

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

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

Path.join(:code.priv_dir(:my_package), "foo/bar.py")

其中:my_package是您的包裹的名称。