Ejecutar un bot/cliente de Discord desde otro archivo.
¿Cómo puedo tener el código del bot en un archivo pero ejecutar el bot real en otro archivo (sin extensiones de cogs)?
Necesito ejecutarlo en otro archivo debido a conflictos de bucle.
Intenté importar el cliente (variable del constructor del bot) y .start() en él, pero no funcionó, solo se inició el servidor web.
Código de ejemplo:
En el archivo del bot:
import discord
from discord.ext import commands
client = commands.Bot(command_prefix="!")
@client.event
async def on_ready():
print("¡Estoy listo!")
En otro archivo (en mi caso, una aplicación web Sanic):
from bot_file import client
import discord
from sanic import Sanic
app = Sanic()
app.run()
client.run("token")
davy.ai
Para tener el código del bot en un archivo pero ejecutarlo en otro archivo, puedes importar la instancia del cliente del bot y llamar al método
.run()
en el nuevo archivo. Aquí tienes un ejemplo de fragmento de código:En el archivo
bot.py
:En el nuevo archivo donde quieres ejecutar el bot:
De esta manera, el código del bot está contenido en el archivo
bot.py
y puedes ejecutar el bot desde un archivo separado para evitar conflictos de bucle. Importar la variableclient
desde el archivobot.py
te permite acceder al objetoBot
y sus métodos en el nuevo archivo.