ACLClouds
ACLClouds

Ospitare un bot Discord in Python con discord.py

requirements.txt, file di avvio, log: i passaggi per mettere online un bot discord.py e capire perché si ferma.

Un bot scritto con discord.py è fatto di pochi file: il codice, l’elenco delle dipendenze e un file di avvio. Quando i tre file sono pronti, ospitarlo significa caricarli, installare le dipendenze, avviare il bot e leggere i log se qualcosa non funziona.

  • Un bot discord.py è fatto di tre file: il codice, requirements.txt e il file di avvio.
  • Il token non deve mai stare nel codice né in Git.
  • I log indicano la causa: leggete l’ultima eccezione prima di riavviare.

Preparare i file

Il bot deve stare in una cartella semplice. Tenete il token fuori dal codice (vedere l’articolo sulle variabili d’ambiente) ed elencate le dipendenze in un file requirements.txt, che l’installazione legge riga per riga.

  • bot.py: il file di avvio, quello che crea il client e chiama client.run().
  • requirements.txt: un pacchetto per riga, per esempio discord.py>=2.3 come versione minima testata.
  • Un file .env in locale, solo per i vostri test: non deve mai arrivare sul server né in Git.

Installare e avviare

Su un ambiente Python il comando per installare le dipendenze è lo stesso del vostro PC. Quando i pacchetti sono installati, il bot parte dal suo file di avvio.

  • pip install -r requirements.txt: installa i pacchetti elencati.
  • python bot.py: avvia il bot in locale per verificare che si connetta.
  • Se la console segnala un file di avvio che non trova, lo cerca nelle sottocartelle e propone una correzione con un clic.

Leggi i registri

I log sono il primo posto dove guardare. Un bot che si ferma lascia quasi sempre una traccia: un’eccezione Python, un accesso rifiutato o un errore di token.

  • Un Traceback seguito dal nome di un’eccezione: il file e la riga indicati sono il codice da correggere.
  • discord.errors.LoginFailure: il token manca o non è valido, vedere l’articolo sugli errori frequenti dei bot Discord.
  • Intent privilegiati: Message Content va attivato nel portale per sviluppatori di Discord se il codice legge il testo dei messaggi.

Perché ACLClouds per un bot discord.py

Il piano gratuito offre 1 bot, 315 MB di RAM, 0,25 vCPU e 715 MB di spazio. ffmpeg, yt-dlp e deno sono già installati e ogni bot ha il proprio accesso SFTP.

  • Piano gratuito: 1 bot, 315 MB di RAM, 0,25 vCPU, 715 MB di spazio, caricamenti fino a 100 MB.
  • L’immagine Python include ffmpeg, yt-dlp e deno.
  • Accesso SFTP per bot sulla porta 2222, per caricare i file con FileZilla.

Domande frequenti

Quale versione di Python serve a discord.py?

discord.py 2.x richiede Python 3.8 o successivo. Per un progetto nuovo usate una versione recente e ancora mantenuta.

Il bot si connette ma non risponde ai messaggi, perché?

Verificate che l’intent Message Content sia attivo nel portale per sviluppatori e che il bot possa leggere e scrivere nel canale.

Il bot può funzionare con il PC spento?

Sì, è lo scopo dell’hosting: il bot gira sul server. Controllate comunque i log dopo ogni modifica al codice.