我在heroku上托管的discord.py机器人无法正常工作

时间:2020-07-30 03:28:32

标签: python heroku discord.py

我将我的discord.py机器人托管在heroku上,构建成功,并且部署
该代码在我的 VSC 上有效,但在heroku上无效。

requirements.txt:

discord.py==1.3.4
PyNaCl==1.3.0
pandas
dnspython==1.16.0
async-timeout==3.0.1

Procfile:

worker: python bot.py

我不知道是什么问题。
能否请任何人告诉我要修改或出什么问题?
感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我做到了:

$ heroku logs --tail

我得到了:

2020-07-30T03:30:00.853064+00:00 app[worker.1]: File "bot.py", line 3, in <module>
2020-07-30T03:30:00.853284+00:00 app[worker.1]: import requests
2020-07-30T03:30:00.853316+00:00 app[worker.1]: ModuleNotFoundError: No module named 'requests'
2020-07-30T03:30:00.964329+00:00 heroku[worker.1]: Process exited with status 1
2020-07-30T03:30:01.011352+00:00 heroku[worker.1]: State changed from up to crashed

很抱歉这个愚蠢的问题。

答案 1 :(得分:0)

要解决您的问题,听起来您需要将requests模块添加到requirements.txt。为此,您可以在控制台中运行以下命令:

pip show requests

记下版本号,并将以下内容附加到您的requirements.txt文件中:

requests==x.y.z

x.y.z替换为您使用pip show requests获得的版本。

在Heroku上托管机器人的一般过程:

如果您想将机器人托管在Heroku上,我要采取的步骤是:

requirements.txt

您可以通过在控制台中运行以下命令来获取此信息:

pip freeze > requirements.txt

这会将所有必需的Python模块及其各自的版本写入文件。 (这还将找到并添加您丢失的“请求”模块)

Procfile

在此文件中,您只需:

worker: python bot.py

“ python bot.py”将在Heroku上运行以启动您的机器人。尽管您做得很好。

Heroku资源

在Heroku网站上访问您的应用程序的信息中心。然后选择“资源”标签。

接下来,应该有Procfile的内容。单击右侧的笔,启用该开关以允许Heroku启动工作程序。

如果您在托管机器人方面遇到任何问题,请回复我的建议,我们将很乐意为您提供帮助。