Discord.py 如何修复已删除旧代码仍与新代码同运行的“幽灵代码”问题
问题解决方法
该问题的核心原因是修改代码后未完全终止旧版本的机器人进程,多个机器人进程同时监听同一个账号的指令,因此旧代码的占位文本和新代码的字符画会同时返回。
可按以下步骤修复:
- 完全终止所有和该机器人相关的Python运行进程,注意不要只关闭代码编辑器的运行标签,很多时候进程会留在后台继续运行:
- Windows环境:打开任务管理器,结束所有对应机器人的python.exe进程,也可以直接重启电脑彻底清空后台残留进程
- Linux/macOS环境:执行命令
ps aux | grep python找到机器人脚本对应的进程ID,执行kill -9 进程ID终止,也可以直接运行pkill -f 你的机器人脚本文件名.py批量终止相关进程
- 确认没有遗留的机器人进程后,重新运行修改后的代码,触发sus命令验证输出是否符合预期
- 如果问题仍存在,可在
await ctx.send()代码前添加调试打印语句print("执行sus命令,即将发送字符画"),运行机器人后查看终端输出,确认当前运行的是最新版本的代码 - 如果你是在云服务器、在线编程平台部署的机器人,需要确认已经停止旧的部署实例,再重新发布新代码,避免多个实例同时响应指令
内容的提问来源于stack exchange,提问作者Emerson Meadows
相关产品推荐
相关产品推荐

