Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Linux中,环境变量未使用load_dotenv()加载_Python_Linux_Environment Variables_Dotenv - Fatal编程技术网

Python 在Linux中,环境变量未使用load_dotenv()加载

Python 在Linux中,环境变量未使用load_dotenv()加载,python,linux,environment-variables,dotenv,Python,Linux,Environment Variables,Dotenv,我正在尝试创建一个不协调的bot,当我尝试用load_dotenv()加载一个.env时,它不起作用,因为它说 Traceback (most recent call last): File "/home/fanjin/Documents/Python Projects/Discord Bot/bot.py", line 15, in <module> client.run(TOKEN) File "/home/fanjin/.local

我正在尝试创建一个不协调的bot,当我尝试用load_dotenv()加载一个.env时,它不起作用,因为它说

Traceback (most recent call last):
  File "/home/fanjin/Documents/Python Projects/Discord Bot/bot.py", line 15, in <module>
    client.run(TOKEN)
  File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 708, in run
    return future.result()
  File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 687, in runner
    await self.start(*args, **kwargs)
  File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 650, in start
    await self.login(*args, bot=bot)
  File "/home/fanjin/.local/lib/python3.8/site-packages/discord/client.py", line 499, in login
    await self.http.static_login(token.strip(), bot=bot)
AttributeError: 'NoneType' object has no attribute 'strip
还有save.env文件:(这是一个假的令牌)

两个文件都在同一个目录中,我甚至尝试使用

env_path = Path('path/to/file') / '.env'
load_dotenv(dotenv_path=env_path)

但这也不起作用

我尝试在ubuntu 20.04和python dotenv 0.15.0上加载我的环境配置时遇到了相同的错误。我能够使用python解释器纠正这个问题,它将注销在尝试加载环境时遇到的任何错误。只要成功加载环境变量,load_dotenv()就会返回
True

对我来说,是配置文件的问题(语法错误)破坏了加载过程。我所需要做的就是转到我的环境变量config文件并修复损坏的语法


加载环境变量(从python的解释器)时,请尝试传递
verbose=True
,以从load\u dotenv获取更多信息。

因此我花了一些时间。我的load_dotenv()返回True

我在一些记录后面有逗号,这是不正确的


一旦删除逗号,变量就工作了。

这主要是关于<代码> DOTENV库的问题,它不是Python或Linux本身的一部分,考虑对该库的标记。BTW,这是猜测,但如果引用令牌的值,它会起作用吗?也就是说:
DISCORD_-TOKEN='{…}'
…包含异常的堆栈跟踪也会很有帮助;如果我们知道哪一行最初抛出了异常,我们将知道哪个值意外地是
None
,而不是包含字符串。@CharlesDuffy很抱歉,我使用的是我随pip安装的
python dotenv
库。我试着引用它,但它不起作用,我更新了帖子以包含完整的堆栈traceOkay,因此错误告诉您
token
是None;它不是直接从dotenv代码本身抛出的。
# .env
DISCORD_TOKEN={Bzc0NjfUH8fEWFjg2NDMyMjY2.X6coqw.JyiOR89JIH7fFFoyOMufK_1A}
env_path = Path('path/to/file') / '.env'
load_dotenv(dotenv_path=env_path)