gpt4 book ai didi

rust - 无法访问 Rust 中的环境变量

转载 作者:行者123 更新时间:2023-11-29 08:21:27 25 4
gpt4 key购买 nike

这段代码如下:

// Log in to Discord using a bot token from the environment                  
let discord = Discord::from_bot_token(
&env::var("DISCORD_TOKEN").unwrap()
).expect("login failed");

我收到一条错误消息,提示无法找到环境变量 DISCORD_TOKEN

我的环境确实显示了变量:

myawesomename$env | grep DISCORD
DISCORD_TOKEN=you'llneverknow

如果我打印 Rust 知道的所有键和值:

for (key, value) in env::vars() {                                            
println!("{}: {}", key, value);
}

它不显示环境变量。

类似地,当我执行 env | grep CARGO,CARGO 变量都不存在,但它们打印在 Rust 代码中。

对于 Rust 正在查看的配置文件/系统 env 变量,我根本不了解一些东西(我认为是启动进程的环境中的变量)。

更新:我不知道我改变了什么,但它现在有效了。很抱歉打扰了大家的时间。不过,感谢您帮助我调查此事。

最佳答案

取消删除这个问题,因为我得到了答案。但这是因为我在问问题之前没有检查所有因素。

它在我运行 cargo run 时有效,但在我运行 sudo cargo run 时无效。我在 sudo 中运行它,因为我试图读取另一个进程的内存。 sudo 配置文件有它自己的一组环境变量,它会在执行 sudo 之前重置环境。

为了解决这个问题,我运行了 sudo visudo 并插入了这一行

默认 env_keep += "DISCORD_TOKEN'

从那里开始,它奏效了。

This link给我答案。

关于rust - 无法访问 Rust 中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40604084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com