使用
cargo build --release
构建 Rust 二进制文件时,该二进制文件在 /target/release
内完美生成,但是我收到一条消息,指出它无法加载环境变量。
然后我将 .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}
打开二进制文件
正如我在评论中所说,我认为
open
扰乱了工作目录。我不知道为什么,也不知道它到底做了什么(一些 macOS 专家可以详细说明这一点),但这应该不重要。这是因为 Rust 会生成可执行的二进制文件。这意味着你不需要做
open {binary name}
你可以简单地做
{binary name}
在终端中,它应该可以正常工作。