1
我有一個Python腳本,作爲我寫的Elixir庫的一部分運行 - 也就是說,在啓動應用程序時,我在我的一個start_link函數中運行System.cmd("python", [path/to/script], [])
。Elixir庫應用程序路徑到腳本
我將腳本安裝在用戶的deps/mylibrary/lib文件夾中。
path/to/script
是我不知道該怎麼做的部分 - 我可以通過評估System.cwd()
並查看結果來推斷腳本的位置,但這看起來是錯誤的。
我覺得必須有一種方法來使用Mix來做到這一點。
我通常使用'Path.expand'和'__DIR__'來獲取相對於當前源文件的路徑,例如'Path.expand(「path/to/script」,__DIR __)''。你能否看到這是否適合你? (你可能必須執行'../ path/to/script'或'../../ path/to/script',這取決於你調用哪個文件。) – Dogbert
@Dogbert是的,作品!但我想知道這是否是這樣做的標準方式。似乎許多Elixir庫必須具有非Elixir依賴關係。這些通常安裝在deps/whatever/lib中,就像我所做的一樣? – MaxStrange
我相信你想在運行時訪問的文件應該放在'priv /'文件夾中,然後你可以確保你可以使用':code.priv_dir(:my_package)'從你的代碼中訪問它們。見http://stackoverflow.com/questions/43414104/read-files-in-phoenix-in-production-mode和我的評論。 – Dogbert