问题描述
我正在尝试制作一个不和谐的机器人,当我尝试使用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
这是我给机器人的代码:
import os
import discord
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('disCORD_TOKEN')
client = discord.Client()
@client.event
async def on_ready():
print(f'{client.user} has connected to discord!')
client.run(TOKEN)
# .env
disCORD_TOKEN={Bzc0NjfUH8fEWFjg2NDMyMjY2.X6coqw.JyiOR89JIH7fFFoyOMufK_1A}
两个文件都在同一个目录中,我什至尝试用.p显式指定.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
。
对我来说,这是我的配置文件(语法错误)的一个问题,它破坏了加载过程。我需要做的就是转到我的环境变量配置文件并修复损坏的语法..
尝试在加载环境变量(来自 python 的解释器)时传递 verbose=True
以从 load_dotenv 获取更多信息。
所以这花了我一段时间。我的 load_dotenv() 返回 True。
我在一些不正确的记录后面加了逗号。
删除逗号后,变量就起作用了。