rust 将.env文件与发布二进制文件一起使用

w6lpcovy  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(114)

当用cargo build --release构建rust二进制文件时,二进制文件在/target/release内部完美生成,但是我得到一条消息,它无法加载env变量。
然后我将.env文件从项目复制到同一个目录,仍然得到错误。
在代码内部,它看起来像这样:

use dotenv::dotenv;

async fn main() -> anyhow::Result<()> {
    dotenv().ok();

    let my_env_var= std::env::var("MY_ENV_VAR").expect("MY_ENV_VAR must be set.");
    ...
}

字符串
当然,它在cargo run上工作得很好。
如何运行生成的二进制文件并确保正确读取.env文件?(使用Mac mini)
注意:我使用open {binary name}打开二进制文件

8ehkhllq

8ehkhllq1#

正如我在评论中所说的,我认为open会扰乱工作目录。我不知道为什么,也不知道它到底做了什么(一些macosMaven可以详细说明这一点),但这应该没关系。这是因为Rust会生成一个可执行的二进制文件。这意味着你不需要做

open {binary name}

字符串
你可以简单地

{binary name}


在终端,它应该没有任何问题。

相关问题