Çözüldü Kod çalıştığı zaman "SYS: RuntimeWarning: Coroutine 'Loop. _loop' was never awaited" hatası veriyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

ROCKSTARLIVIN'

Kilopat
Katılım
28 Ocak 2019
Mesajlar
257
Bahettiğim GitHub Raw Linkindeki kodu çalıştırdığım zaman.

Kod:
Traceback (most recent call last):
  File "main.py", line 223, in <module>
    bot.add_cog(mcstatus_cog(bot, get_status))
  File "C:\Users\Administrator\Desktop\SurvivalHouseMaster-main\mcstatus_cog.py", line 27, in __init__
    self.periodically_get_status.start()
  File "C:\Users\Administrator\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\discord\ext\tasks\__init__.py", line 398, in start
    self._task = asyncio.create_task(self._loop(*args, **kwargs))
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.2800.0_x64__qbz5n2kfra8p0\lib\asyncio\tasks.py", line 381, in create_task
    loop = events.get_running_loop()
RuntimeError: no running event loop
sys:1: RuntimeWarning: coroutine 'Loop._loop' was never awaited

Gibi bir hata alıyorum. Nasıl çözeceğimi de anlamadım. Python'a yeni yeni başlıyorum ve incelemek için eski open-source bir botu alıp güncellemek istedim. Çalıştırdığımda böyle bir hata alıyorum. Teşekkür ederim.
 
Son düzenleyen: Moderatör:
Çözüm
Await deyimi __main__ modülü seviyesinde değil yalnızca asenkron tanımlanan bir fonksiyonda coroutinenin eş zamanlı olarak çalıştırılması ve sonucunun beklenmesi için kullanılır. `add_cog` metodunu `on_ready` eventi'nin içinde yapın zira kodda cog'un eklendiği asenkron bir fonksiyon içerisinde değil, hatta `client.run` metodu kodun devam etmesini blokluyor zaten. Bu kadar fazla uğraşıya gerek yok.

Python:
@bot.event
async def on_ready():
    await bot.add_cog(mcstatus_cog(bot, get_status))
    await bot.add_cog(panel_cog(bot))
Await deyimi __main__ modülü seviyesinde değil yalnızca asenkron tanımlanan bir fonksiyonda coroutinenin eş zamanlı olarak çalıştırılması ve sonucunun beklenmesi için kullanılır. `add_cog` metodunu `on_ready` eventi'nin içinde yapın zira kodda cog'un eklendiği asenkron bir fonksiyon içerisinde değil, hatta `client.run` metodu kodun devam etmesini blokluyor zaten. Bu kadar fazla uğraşıya gerek yok.

Python:
@bot.event
async def on_ready():
    await bot.add_cog(mcstatus_cog(bot, get_status))
    await bot.add_cog(panel_cog(bot))
Evet, bununla çözüldü. Çok teşekkür ederim.
 

Technopat Haberler

Yeni konular

Geri
Yukarı