当用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}
打开二进制文件
1条答案
按热度按时间8ehkhllq1#
正如我在评论中所说的,我认为
open
会扰乱工作目录。我不知道为什么,也不知道它到底做了什么(一些macosMaven可以详细说明这一点),但这应该没关系。这是因为Rust会生成一个可执行的二进制文件。这意味着你不需要做字符串
你可以简单地
型
在终端,它应该没有任何问题。