You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在不硬编码令牌的情况下运行discord.py机器人?

如何在不硬编码令牌的情况下运行discord.py机器人?

嘿,我完全懂你不想把机器人token硬写在代码里的想法——这绝对是个值得养成的好习惯,能避免不小心把敏感信息泄露到版本控制或者其他地方!针对你的需求,我给你几个简单易上手的方法,都适配你的Python 3.11.1版本:

方法一:用普通文本文件(config.txt)

这个方法最直接,完全不需要额外安装库:

  1. 先在你的项目根目录新建一个config.txt文件,里面只放你的机器人token就行,别加引号,就纯纯一行内容:
你的Discord机器人token
  1. 然后在你的Python代码里,把原来硬编码token的部分改成读取这个文件的内容:
# 你的其他导入和intents设置代码
# imports blahblah
# intents blahblah

# 读取config.txt里的token
with open('config.txt', 'r') as f:
    token = f.read().strip()  # strip()用来去掉可能的换行或空格

client.run(token)

注意:一定要把config.txt加入到.gitignore文件里(如果用Git的话),别把它提交到代码仓库!

方法二:用.env文件(更推荐,支持多配置项)

如果之后你还需要添加其他配置(比如数据库密码、API密钥),用.env文件会更方便:

  1. 先安装python-dotenv库:
pip install python-dotenv
  1. 在项目根目录新建一个.env文件,内容格式如下:
DISCORD_TOKEN=你的Discord机器人token
  1. 修改你的Python代码来加载这个文件:
# 你的其他导入和intents设置代码
# imports blahblah
# intents blahblah

from dotenv import load_dotenv
import os

# 加载.env文件里的配置
load_dotenv()
token = os.getenv('DISCORD_TOKEN')

client.run(token)

同样,记得把.env加入.gitignore,保护敏感信息。

方法三:用configparser(适合复杂配置场景)

如果你的机器人需要很多结构化的配置项,比如不同环境的设置,用configparser会更合适(这个是Python标准库,不用额外安装):

  1. 新建一个config.ini文件,内容如下:
[Discord]
token = 你的Discord机器人token
  1. 在代码里读取这个配置:
# 你的其他导入和intents设置代码
# imports blahblah
# intents blahblah

import configparser

config = configparser.ConfigParser()
config.read('config.ini')
token = config.get('Discord', 'token')

client.run(token)

这几个方法都能完美解决你的问题,选最适合你当前需求的就行~

备注:内容来源于stack exchange,提问作者Eino S

火山引擎 最新活动