我有一个Python脚本,我作为我正在编写的Elixir库的一部分运行 - 也就是说,在启动应用程序时,我在我的一个start_link函数中运行System.cmd("python", [path/to/script], [])
。
我在用户的deps / mylibrary / lib文件夹中安装脚本。
path/to/script
是我不知道该怎么做的部分 - 我可以通过评估System.cwd()
并查看结果来推断脚本的位置,但这似乎是错误的。
我认为必须有一种方法可以使用Mix。
答案 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
是您的包裹的名称。