Python开发Discord Bot遇AttributeError及网络连接问题求助
解决Discord Bot登录失败:AttributeError与WinError 64问题
核心解决步骤
1. 正确配置Intents(必做)
Discord API v9及之后要求显式开启必要的网关意图,否则会导致连接异常或权限错误:
- 登录Discord开发者门户,进入你的Bot应用页面,在Privileged Gateway Intents板块,开启
Presence Intent、Server Members Intent、Message Content Intent三个选项 - 更新代码中的Intents配置,确保包含命令所需的权限:
intents = discord.Intents.default() intents.message_content = True # 处理文本命令必须开启此意图
2. 修复WinError 64网络连接问题
该错误是Windows系统网络连接异常导致的,尝试以下操作:
- 切换至稳定网络(如有线连接),或重启路由器重置网络
- 关闭代理、VPN工具,避免拦截Bot的API请求
- 检查防火墙/杀毒软件规则,临时关闭后测试是否能正常连接
- 重置Winsock:以管理员身份打开命令提示符,执行
netsh winsock reset,重启电脑后重试
3. 确保Discord.py版本兼容
旧版本discord.py可能与最新Discord API不兼容,执行以下命令更新至稳定版:
pip install --upgrade discord.py
4. 验证Bot Token有效性
确认使用的是Discord开发者后台生成的Bot Token(而非Client Secret),复制时不要包含多余空格或换行符
修正后的完整代码
import discord from discord.ext import commands # 配置符合要求的Intents intents = discord.Intents.default() intents.message_content = True bot = commands.Bot(command_prefix="| ", intents=intents) TOKEN = '你的Bot Token' # 替换为实际Token @bot.event async def on_ready(): print(f'Logged in as {bot.user} (ID: {bot.user.id})') print('Bot已上线,可以开始开发命令功能') bot.run(TOKEN)
内容的提问来源于stack exchange,提问作者Artin .A
相关产品推荐
相关产品推荐

