我将我的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
我不知道是什么问题。
能否请任何人告诉我要修改或出什么问题?
感谢您的帮助。
答案 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启动工作程序。
如果您在托管机器人方面遇到任何问题,请回复我的建议,我们将很乐意为您提供帮助。