Python: Dépannage

Vous rencontrez un problème avec votre service Python ? La solution se trouve probablement ici !

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Python cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Déployez votre application en quelques secondes avec un simple git push.
  • Utilisez votre propre nom de domaine et profitez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
  • Bénéficiez de sauvegardes automatiques, de mises à jour en un clic, ainsi que d'une tarification simple, transparente et prévisible.
  • Profitez d'une performance optimale et d'une sécurité renforcée grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution d'hébergement Python cloud de Stackhero !

Le service d'hébergement cloud Python de Stackhero est conçu pour être simple à utiliser, mais il peut arriver que vous rencontriez certains défis. Ce guide vous aidera à résoudre les erreurs les plus courantes.

Vous pouvez rencontrer cette erreur lors du déploiement de votre application :

error: failed to push some refs to '[...]'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Ce message indique que votre dépôt Git local n'est pas synchronisé avec le dépôt distant sur Stackhero. Pour corriger cela, vous pouvez forcer la mise à jour de l'état du dépôt distant avec la commande suivante :

git push -f stackhero main

Lors du déploiement avec git push stackhero main, vous pouvez voir apparaître cette erreur :

error: src refspec main does not match any
error: failed to push some refs to 'ssh://<XXXXXX>.stackhero-network.com:222/project.git'

Cette erreur signifie que la branche main n'existe pas localement. Il est possible que vous deviez pousser la branche master à la place. Essayez la commande suivante :

git push stackhero master

Git peut afficher Everything up-to-date lorsqu'aucune différence n'est détectée entre votre code local et celui sur Stackhero.

Si vous avez effectué des modifications mais oublié de les valider, utilisez ces commandes :

git add -A .
git commit -m "Votre message de commit"
git push stackhero main

Si aucune modification réelle n'a été faite mais que vous souhaitez tout de même déclencher un déploiement, vous pouvez utiliser cette méthode :

git commit --allow-empty -m "Force update"
git push stackhero main

Une version améliorée du Makefile permet d'automatiser ce processus. Avec cette version, vous pouvez déployer simplement avec la commande make deploy, même si aucun changement de code n'est détecté.

Cette erreur indique qu'il manque un Makefile à la racine de votre projet ou que le Makefile existant ne définit pas de cible run.

Pour corriger cela, créez un fichier Makefile à la racine de votre projet avec le contenu suivant :

run:
	ENV=production gunicorn app:app \
	--error-logfile - \
	-b 0.0.0.0:8080

Ce script démarre un serveur Gunicorn, exécute le fichier app.py avec l'instance Flask app et écoute sur le port 8080.

Pensez à utiliser un Makefile amélioré pour simplifier l'exécution de votre environnement de développement et le déploiement de votre application.

L'erreur make: *** missing separator survient dans un Makefile lorsqu'un caractère tabulation est remplacé par des espaces avant une commande. Chaque commande dans un Makefile doit être précédée d'une tabulation, et non d'espaces.

Pour corriger cette erreur, assurez-vous qu'un caractère tabulation (et non des espaces) précède vos commandes :

run:
<tab>command

Remplacez <tab> par une vraie tabulation pour résoudre le problème.