Python函数未运行

2024-10-06 11:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在大约5年没有使用Python之后,我决定重新使用Python。我从NodeJS开始用Python重新编码我的Discord机器人,它做得很好,但后来我开始得到这个奇怪的bug。你知道吗

我的问题很简单。我有两个文件:__main__.pycommander.py

main.py

from core.utility import parser, discord
from core.admin import commander

def ping(arguments, flags, options):
    print("PONG")

commander.addCommand("ping", "A ping pong request.", None, None, ping)
print('a')

你知道吗指挥官.py你知道吗

list = []

def addCommand(name, description, usage, permissions, callback):
    command = {}
    command["name"] = name
    command["description"] = description
    command["usage"] = usage
    command["permissions"] = permissions
    command["callback"] = callback
    print("Command added: ", name)
    list.append(command)

当我在__main__.py内部调用commander.addCommand时,print station不会打印。我还注意到print('a')也没有打印,这使我相信应用程序正在被我正在使用的Discord库this阻塞。你知道吗

还注意到,当我按ctrl+c停止Putty中的进程时,commander.addCommand中的print语句实际上是打印的,所以我几乎可以肯定应用程序被阻塞了,但我不知道如何以异步方式运行它。你知道吗

对我如何实现目标有什么建议吗?你知道吗


Tags: namefrompycorepermissionsmaincallbackusage
2条回答

这真的应该是一个评论,但我还不能这样做。你在commander.py中的缩进是否正确?def addCommand(...)之后的所有内容都应该缩进。除非你的问题写错了。你知道吗

编辑:我无法重现这个错误。它在我的机器上运行得很好。与其从自己的文件中导入discord,为什么不从pip中获取它呢?这可能是你的剧本和我的唯一不同。你知道吗

我相信问题出在油灰上。您的代码实际上根本不调用discord。您的标准输出缓冲区可能没有被刷新。试试这两种方法中的一种。你知道吗

在python中使用-u参数

python -u __main__.py

在打印语句后添加刷新

print('Whatever')
import sys; sys.stdout.flush()

相关问题 更多 >