在不使用Python大约5年后,我决定重新使用它。我开始从NodeJS用Python重新编码我的Discord bot,它做得很好,但后来我开始得到这个奇怪的bug。
我的问题很简单。我有两个文件:__main__.py
和commander.py
主要的.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')
commander.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)
当我在commander.addCommand
内拨打__main__.py
时,打印件无法打印。我还注意到print('a')
也没有打印,这让我相信应用程序正被我正在使用的Discord库阻止,这是this。
还注意到当我按下ctrl + c来停止Putty中的进程时,commander.addCommand
内的print语句实际上是打印的,所以我几乎可以肯定应用程序正在阻塞但是我不知道如何运行它异步。
关于如何实现目标的任何建议?
答案 0 :(得分:0)
这应该是一个评论,但我还不能这样做。你在commander.py
中的缩进是否正确? def addCommand(...)
之后的所有内容都应缩进。除非你在你的问题中写错了。
编辑:我无法重现此错误。它在我的机器上运行就好了。而不是从您自己的文件导入discord,为什么不从pip获取它?这可能是你和我的脚本之间的唯一区别。
答案 1 :(得分:0)
我认为问题出在Putty身上。您的代码实际上根本不会调用discord
。您的stdout缓冲区可能没有被刷新。尝试这两种方法之一。
在python中使用-u
参数
python -u __main__.py
在打印报表后添加刷新</ p>
print('Whatever')
import sys; sys.stdout.flush()