脚本的 Elixir 库应用程序路径
Elixir library application path to scripts
我有一个 Python 脚本,我 运行 作为我正在编写的 Elixir 库的一部分 - 也就是说,在启动应用程序时,我 运行 System.cmd("python", [path/to/script], [])
在我的一个 start_link 函数中。
我将脚本安装在用户的 deps/mylibrary/lib 文件夹中。
path/to/script
是我不知道该怎么做的部分 - 我可以通过评估 System.cwd()
并查看结果来推断脚本的位置,但这似乎是错误的。
我想一定有办法使用 Mix 来做到这一点。
library/package 在运行时需要的文件应存储在 priv/
文件夹中。此目录中的所有内容都将出现在由例如创建的 Erlang 版本中。酒厂。在运行时,可以通过:code.priv_dir/1
返回的路径知道包的priv
目录的位置。
因此,如果您的 Python 脚本在 priv/foo/bar.py
中,您可以使用以下方法获取该文件的绝对路径:
Path.join(:code.priv_dir(:my_package), "foo/bar.py")
其中 :my_package
是您的包裹的名称。
我有一个 Python 脚本,我 运行 作为我正在编写的 Elixir 库的一部分 - 也就是说,在启动应用程序时,我 运行 System.cmd("python", [path/to/script], [])
在我的一个 start_link 函数中。
我将脚本安装在用户的 deps/mylibrary/lib 文件夹中。
path/to/script
是我不知道该怎么做的部分 - 我可以通过评估 System.cwd()
并查看结果来推断脚本的位置,但这似乎是错误的。
我想一定有办法使用 Mix 来做到这一点。
library/package 在运行时需要的文件应存储在 priv/
文件夹中。此目录中的所有内容都将出现在由例如创建的 Erlang 版本中。酒厂。在运行时,可以通过:code.priv_dir/1
返回的路径知道包的priv
目录的位置。
因此,如果您的 Python 脚本在 priv/foo/bar.py
中,您可以使用以下方法获取该文件的绝对路径:
Path.join(:code.priv_dir(:my_package), "foo/bar.py")
其中 :my_package
是您的包裹的名称。