Comment héberger un bot Python ?
Préparer requirements.txt, choisir le fichier principal et installer les dépendances. Évitez de stocker le token directement dans le code.
L’environnement Python utilise un fichier de dépendances et une commande de lancement explicite. Évitez de stocker le token directement dans le code.
Procédure étape par étape
-
Préparer requirements.txt
Listez les bibliothèques nécessaires avec des versions compatibles.
-
Choisir l’environnement Python
Commandez un bot et sélectionnez l’environnement Python proposé dans le catalogue.
-
Importer le code
Envoyez requirements.txt, le dossier source et le fichier principal.
-
Configurer les secrets
Créez la variable DISCORD_TOKEN, puis lisez-la avec os.environ.
-
Démarrer
Cliquez sur « Démarrer » : la plateforme installe requirements.txt, puis lance python -u bot.py ou le « Fichier principal » défini dans Démarrage.
requirements.txt
discord.py==2.5.2
python-dotenv==1.1.0
Lecture du token
import os
TOKEN = os.environ["DISCORD_TOKEN"]
Fichier bot.py minimal
import os
import discord
intents = discord.Intents.default()
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f"Logged in as {client.user}")
client.run(os.environ["DISCORD_TOKEN"])
Avant de commencer
Choisissez la version de Python la plus proche de celle de votre ordinateur : 3.11, 3.12 ou 3.13. Elle se change ensuite dans l’onglet « Démarrage », carte « Image Docker », et les dépendances sont alors réinstallées.
- Un requirements.txt à la racine, avec des versions fixées comme discord.py==2.5.2.
- À défaut, les dépendances de la section [project] de pyproject.toml sont installées.
- Un fichier principal à la racine, par exemple bot.py ou main.py.
- Aucun dossier venv ou .venv dans l’envoi : la plateforme installe ses propres paquets.
Comment le bot est lancé
Au démarrage, la plateforme installe les paquets de requirements.txt s’ils ont changé depuis la dernière installation, puis lance le fichier principal avec python -u. L’option -u désactive la mise en mémoire tampon : vos print() apparaissent tout de suite dans la console.
Sans réglage, le fichier lancé est le premier trouvé parmi bot.py, main.py, app.py, run.py et index.py. Pour un autre fichier, renseignez le « Fichier principal » dans « Démarrage ». Un autre nom de fichier de dépendances se règle avec le « Fichier des dépendances ».
Les paquets sont installés en priorité depuis des versions précompilées (wheels). Un paquet sans wheel compatible est compilé depuis ses sources, ce qui prend plus de temps et peut échouer : choisissez alors une version plus récente du paquet.
Vérifier que tout fonctionne
Ajoutez un message dans l’événement on_ready, démarrez le bot et ouvrez la console. La ligne de la commande, par exemple $ python -u bot.py, doit être suivie de votre message de connexion. Si le bot redémarre en boucle, la première erreur Python se trouve juste au-dessus de la ligne qui annonce l’arrêt du processus.
Questions fréquentes
Que faire avec ModuleNotFoundError: No module named 'discord' ?
Le paquet manque dans requirements.txt ou son installation a échoué. Le nom installé diffère du nom importé : le code écrit import discord, mais le paquet s’appelle discord.py. Ajoutez la ligne, puis redémarrez : l’installation reprend au démarrage.
Pourquoi No module named 'audioop' avec Python 3.13 ?
Le module audioop a été retiré de Python 3.13 et les anciennes versions de discord.py l’importent encore. Mettez discord.py à jour dans requirements.txt ou ajoutez le paquet audioop-lts, puis redémarrez.
Que signifie discord.errors.LoginFailure: Improper token has been passed. ?
Discord refuse le token reçu. Vérifiez que la variable s’appelle exactement DISCORD_TOKEN dans « Démarrage » et qu’elle contient le token de l’onglet « Bot », pas le secret client. Si le token a pu circuler, régénérez-le avec « Reset Token », enregistrez la nouvelle valeur et redémarrez.
Le bot s’arrête avec PrivilegedIntentsRequired, que faire ?
Le code active message_content, members ou presences alors que l’intent n’est pas autorisé pour l’application. Activez-le dans le portail Discord, onglet « Bot », section « Privileged Gateway Intents », puis redémarrez le bot.