You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py代码无法执行:Replit中点击启动后程序自动停止

问题分析与解决方法

你的代码有两个核心问题导致机器人启动后立刻停止:

  • 重复定义了MyClient类和相关的intents、client实例,属于冗余代码
  • 只定义了启动机器人的异步函数client_start(),但从未调用过这个函数,程序执行到末尾就直接结束,根本没启动Discord客户端

修正后的完整代码

import discord
import asyncio

# 仅定义一次客户端类
class MyClient(discord.Client):
    async def on_ready(self):
        print(f'Logged on as {self.user}!')

    async def on_message(self, message):
        print(f'Message from {message.author}: {message.content}')

# 配置权限并创建客户端实例
intents = discord.Intents.default()
intents.message_content = True
client = MyClient(intents=intents)

# 启动逻辑并触发执行
async def main():
    await client.start('你的机器人Token')

asyncio.run(main())

关键修改说明

  • 删除重复的类和实例定义,简化代码结构
  • 使用asyncio.run(main())触发异步启动逻辑——这是Python 3.7+运行异步代码的标准方式,Replit环境完全支持
  • 记得把代码里的'你的机器人Token'替换为你实际的Discord机器人Token(即原代码中的XYZ)

额外检查项

  • 确保在Discord开发者后台开启了Message Content Intent权限,否则机器人无法接收消息
  • Replit环境中若未安装discord.py,在终端执行pip install discord.py完成安装

内容的提问来源于stack exchange,提问作者Rakhi Ranjan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:01:25