Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 上传到heroku后,Discord重写机器人崩溃_Python_Heroku_Discord.py - Fatal编程技术网

Python 上传到heroku后,Discord重写机器人崩溃

Python 上传到heroku后,Discord重写机器人崩溃,python,heroku,discord.py,Python,Heroku,Discord.py,到目前为止,它在heroku和当地都运作良好。现在它只在本地工作,但在heroku上部署后不工作。这是Heroku的日志: 2021-05-11T14:24:06.000000+00:00 app[api]: Build succeeded 2021-05-11T14:24:06.163275+00:00 heroku[worker.1]: State changed from starting to up 2021-05-11T14:24:15.306244+00:00 app[worker.

到目前为止,它在heroku和当地都运作良好。现在它只在本地工作,但在heroku上部署后不工作。这是Heroku的日志:

2021-05-11T14:24:06.000000+00:00 app[api]: Build succeeded
2021-05-11T14:24:06.163275+00:00 heroku[worker.1]: State changed from starting to up
2021-05-11T14:24:15.306244+00:00 app[worker.1]: Traceback (most recent call last):
2021-05-11T14:24:15.306768+00:00 app[worker.1]: File "/app/dbot.py", line 2, in <module>
2021-05-11T14:24:15.307297+00:00 app[worker.1]: import discord
2021-05-11T14:24:15.307369+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/discord/__init__.py", line 23, in <module>
2021-05-11T14:24:15.307970+00:00 app[worker.1]: from .client import *
2021-05-11T14:24:15.307996+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/discord/client.py", line 36, in <module>
2021-05-11T14:24:15.308464+00:00 app[worker.1]: from .user import User
2021-05-11T14:24:15.308533+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/discord/user.py", line 26, in <module>
2021-05-11T14:24:15.309148+00:00 app[worker.1]: import discord.abc
2021-05-11T14:24:15.309214+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.9/site-packages/discord/abc.py", line 101, in <module>
2021-05-11T14:24:15.309876+00:00 app[worker.1]: SnowflakeTime = Union[Snowflake, datetime]
2021-05-11T14:24:15.310045+00:00 app[worker.1]: NameError: name 'datetime' is not defined
2021-05-11T14:24:15.685219+00:00 heroku[worker.1]: Process exited with status 1
2021-05-11T14:24:15.995755+00:00 heroku[worker.1]: State changed from up to crashed
我的proc文件中有:

worker: python dbot.py
我知道它说“datetime”没有定义,但下面是我的主python文件的前几行:

import datetime
import discord
from discord.ext import commands
from discord import FFmpegPCMAudio
import random
import youtube_dl
import os
from discord.utils import get
import ctypes
import ctypes.util
据我所知,这一切都是在我将以下事件添加到代码后开始的:

@client.event
async def on_message(ctx):
    try:
        if ctx.channel.name == "memes" and "https://" not in str(ctx.content) and not ctx.attachments:
            await ctx.channel.purge(limit=1)
        else:
            await client.process_commands(ctx)
    except:
            await client.process_commands(ctx)

git+https://github.com/Rapptz/discord.py
是discord.py的开发分支,请勿在生产中使用

git+https://github.com/Rapptz/discord.py@1.7.2
1.7.2是最新版本

或者来自PyPi

discord.py>=1.7.2

discord.py在PyPI中可用,因此可以直接从PyPI下载。

前面的答案是导致该错误的正确答案,但您为on_消息事件显示的内容也不正确。我建议你读一读,看看它是如何工作的

编辑:

它当前正在工作,因为您没有使用任何使用
上下文的对象<消息上的代码>采用
discord.message
参数,而不是
commands.Context
参数。这意味着,如果您尝试使用
上下文中的方法或属性,则该方法或属性将不起作用,因为
消息
是传递给消息
的参数


例如,如果我试图在您的代码中执行
ctx.bot
,它会给我一个错误,因为
discord.Message
没有bot属性。现在,您可能正在查看文档,并想知道为什么它会说
ctx
具有bot属性,但当您尝试它时,它会出错。因此,我建议将您的
on_message
参数更改为调用
message
,并将
ctx
的所有实例更改为
message
,以避免以后的混淆。

名称错误:未定义名称“datetime”
:系统上是否为python-3.9安装了datetime?正是我所需要的,谢谢!
discord.py>=1.7.2