gpt4 book ai didi

python - 运行时错误 : There is no current event loop in thread 'Thread-7' . 与 discord.py

转载 作者:行者123 更新时间:2023-12-05 07:10:35 24 4
gpt4 key购买 nike

我正在尝试调出 Tkinter GUI 并同时使用线程和异步运行 discord 机器人。我的代码如下:

def screen():
global msg_entry, channel_entry


main_window = tk.Tk()
main_window.geometry('720x540+50+50')
main_window.title('Control')
main_window.configure(bg=col1)
main_window.resizable(0,0)

msg_box = tk.Entry()




msg_entry = tk.Entry(main_window, font = 'Helvetica 20',
width = 10, bg = col4, fg = 'white')
msg_entry.place(x=100, y=240)

channel_entry = tk.Entry(main_window, font = 'Helvetica 20',
width = 10, bg = col4, fg = 'white')
channel_entry.place(x=350, y=240)

submit = HoverButton(main_window, bd=0, highlightthickness=0, font = 'Helvetica 25 bold', text = "Send",
width = 7, height = 1, bg = col4, fg = col2, justify = 'left'
,command = lambda: asyncio.get_event_loop().run_until_complete(send()), activebackground = col5)
submit.place(x= 220, y = 320)





main_window.mainloop()

# 614001879831150605


async def send():
ce = channel_entry.get()
channel = client.get_channel(int(ce))
await channel.send(msg_entry)

def func1():
client.loop.create_task(update_meme())
client.run(token)

if __name__ == '__main__':
Thread(target = func1).start()
Thread(target = screen).start()

当我运行我的代码时出现以下错误:

RuntimeError:线程“Thread-7”中没有当前事件循环。

我是线程和 asyncio 的新手,所以非常感谢任何帮助。

最佳答案

好吧,你看你还没有定义一个事件循环来在其中创建一个任务。所以在你的 func1 中这样做:

def func1():
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
client = commands.Bot(command_prefix='!')
@client.command()
async def send():
ce = channel_entry.get()
channel = client.get_channel(int(ce))
await channel.send(msg_entry)

loop.run_until_complete(client.run('token'))

然后在它下面定义你的命令。也不要忘记加入你的线程(我将它们作为变量(1&2)只是为了演示)thread1.join()thread2.join()

关于python - 运行时错误 : There is no current event loop in thread 'Thread-7' . 与 discord.py,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61166674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com