ACLClouds
ACLClouds

Einen Discord-Python-Bot mit discord.py hosten

requirements.txt, Startdatei, Logs: die Schritte, um einen discord.py-Bot online zu bringen und zu verstehen, warum er stehen bleibt.

Ein mit discord.py geschriebener Bot besteht aus wenigen Dateien: dem Code, der Liste der Abhängigkeiten und einer Startdatei. Sind diese drei bereit, bedeutet Hosting: hochladen, Abhängigkeiten installieren, den Bot starten und bei Fehlern die Logs lesen.

  • Ein discord.py-Bot besteht aus drei Dateien: Code, requirements.txt und Startdatei.
  • Der Token gehört nie in den Code und nie nach Git.
  • Die Logs nennen die Ursache: Lesen Sie die letzte Ausnahme, bevor Sie neu starten.

Dateien vorbereiten

Der Bot sollte in einen einfachen Ordner passen. Halten Sie den Token aus dem Code heraus (siehe den Artikel zu Umgebungsvariablen) und listen Sie die Abhängigkeiten in einer Datei requirements.txt auf, die die Installation Zeile für Zeile liest.

  • bot.py: die Startdatei, die den Client erstellt und client.run() aufruft.
  • requirements.txt: ein Paket pro Zeile, zum Beispiel discord.py>=2.3 als kleinste getestete Version.
  • Eine lokale .env-Datei nur für Ihre Tests: Sie darf nie auf den Server und nie nach Git.

Installieren und starten

Auf einer Python-Umgebung ist der Befehl zum Installieren der Abhängigkeiten derselbe wie auf Ihrem PC. Danach startet der Bot über seine Startdatei.

  • pip install -r requirements.txt: installiert die aufgelisteten Pakete.
  • python bot.py: startet den Bot lokal, um zu prüfen, ob er sich verbindet.
  • Meldet die Konsole eine Startdatei, die sie nicht findet, sucht sie in den Unterordnern und bietet eine Korrektur mit einem Klick an.

Logs prüfen

Die Logs sind der erste Ort zum Nachsehen. Ein Bot, der stoppt, hinterlässt fast immer eine Spur: eine Python-Ausnahme, eine abgelehnte Anmeldung oder einen Token-Fehler.

  • Ein Traceback mit einem Ausnahmenamen: Datei und Zeile zeigen, welcher Code zu korrigieren ist.
  • discord.errors.LoginFailure: der Token fehlt oder ist ungültig, siehe den Artikel zu häufigen Discord-Bot-Fehlern.
  • Privilegierte Intents: Message Content muss im Discord-Entwicklerportal aktiviert sein, wenn Ihr Code den Nachrichtentext liest.

Warum ACLClouds für einen discord.py-Bot

Der kostenlose Tarif bietet 1 Bot, 315 MB RAM, 0,25 vCPU und 715 MB Speicher. ffmpeg, yt-dlp und deno sind bereits installiert, und jeder Bot hat seinen eigenen SFTP-Zugang.

  • Kostenloser Tarif: 1 Bot, 315 MB RAM, 0,25 vCPU, 715 MB Speicher, Uploads bis 100 MB.
  • Das Python-Image enthält ffmpeg, yt-dlp und deno.
  • SFTP-Zugang pro Bot auf Port 2222, um Ihre Dateien mit FileZilla hochzuladen.

Häufig gestellte Fragen

Welche Python-Version braucht discord.py?

discord.py 2.x braucht Python 3.8 oder neuer. Für ein neues Projekt nehmen Sie eine aktuelle, noch gepflegte Version.

Der Bot verbindet sich, antwortet aber nicht auf Nachrichten. Warum?

Prüfen Sie, ob der Intent Message Content im Entwicklerportal aktiviert ist und ob der Bot im Kanal lesen und schreiben darf.

Kann der Bot laufen, wenn mein PC aus ist?

Ja, dafür ist Hosting da: Der Bot läuft auf dem Server. Prüfen Sie trotzdem die Logs nach jeder Code-Änderung.