我已经成功地将我的Discord bot(Discord.py)部署到Heroku并进行了构建工作,我打开了Dyno并且它说机器人已经上线并在Discord的成员列表中显示为在线在服务器上。但是当我输入命令(例如'?help')时,机器人根本没有响应。任何帮助将不胜感激,请用可理解的术语说话,因为我不是最好的技术语言。令牌等工作(并且机器人从我知道有效的私人GitHub仓库部署)。我试过打开Dyno然后部署,仍然没有机器人的响应。
任何帮助将不胜感激。
编辑:我刚检查过Heroku的日志,并说:2018-04-10T18:04:27.605666+00:00 app[worker.1]: The above exception was the direct cause of the following exception:
2018-04-10T18:04:27.605667+00:00 app[worker.1]:
2018-04-10T18:04:27.605669+00:00 app[worker.1]: Traceback (most recent call last):
2018-04-10T18:04:27.605697+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/bot.py", line 822, in process_commands
2018-04-10T18:04:27.605698+00:00 app[worker.1]: yield from command.invoke(ctx)
2018-04-10T18:04:27.605700+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 367, in invoke
2018-04-10T18:04:27.605701+00:00 app[worker.1]: yield from injected(*ctx.args, **ctx.kwargs)
2018-04-10T18:04:27.605705+00:00 app[worker.1]: raise CommandInvokeError(e) from e
2018-04-10T18:04:27.605704+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.6/site-packages/discord/ext/commands/core.py", line 52, in wrapped
2018-04-10T18:04:27.605729+00:00 app[worker.1]: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: module 'discord' has no attribute 'Embed'`
基本上它没有Embed属性。有人可以帮我解决这个问题吗?我的requirements.txt如下:
discord.py
websockets
chardet
我是否需要在运行时添加内容等?
答案 0 :(得分:0)
这与python无关,但是你被标记为机器人的所有者吗?机器人是否有权输入您要求其输入的频道?这通常是您要求机器人/帮助渠道的所有者。
答案 1 :(得分:0)
已解决:在尝试了很多事情之后,我删除了我的.gitignore并将main.py重命名为run.py.我将requirements.txt中的discord.py版本更改为Heroku将其升级到并重新部署机器人的版本,我认为升级它修复了它,因此,完成了工作。我更新了Procfile,名称从main.py更改为run.py.感谢Justin的帮助!