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 cloud Python prête à l'emploi offrant de nombreux avantages, notamment :
- Déployez votre application en quelques secondes avec un simple
git push.- Utilisez votre propre nom de domaine et bénéficiez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
- Profitez de la tranquillité d'esprit avec des sauvegardes automatiques, des mises à jour en un clic, et une tarification simple, transparente et prévisible.
- Obtenez des performances optimales et une sécurité robuste grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il ne faut que 5 minutes pour essayer la solution d'hébergement cloud Python de Stackhero !
Le service d'hébergement cloud Python de Stackhero est conçu pour être simple, mais des défis peuvent parfois survenir. Voici un guide pour vous aider à résoudre les erreurs que vous pourriez rencontrer.
Résolution de l'erreur "failed to push some refs to '[...]'"
Vous pourriez 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 résoudre ce problème, vous pouvez forcer l'état actuel sur le dépôt distant en utilisant cette commande :
git push -f stackhero main
Résolution de l'erreur "src refspec main does not match any"
Lors du déploiement de code avec git push stackhero main, vous pourriez rencontrer 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 suggère que la branche main n'existe pas localement. Vous devrez peut-être pousser la branche master. Essayez cette commande :
git push stackhero master
Résolution de l'erreur "Everything up-to-date"
Git peut afficher Everything up-to-date lorsqu'aucun changement n'est détecté entre votre code local et le code sur Stackhero.
Si vous avez effectué des modifications mais oublié de les valider, ces commandes peuvent vous aider :
git add -A .
git commit -m "Votre message de commit"
git push stackhero main
Si aucun changement réel n'a été effectué mais que vous souhaitez tout de même déclencher un déploiement, envisagez cette approche :
git commit --allow-empty -m "Force update"
git push stackhero main
Une version améliorée du Makefile peut automatiser ce processus. Avec cette version, vous pouvez déployer avec une simple commande
make deploy, même si aucun changement de code n'est détecté.
Résolution de l'erreur "make: *** No rule to make target 'run'"
Cette erreur indique qu'un Makefile est manquant à la racine de votre projet ou que le Makefile existant ne définit pas de cible run.
Pour résoudre ce problème, vous pouvez créer un Makefile dans le répertoire racine de votre projet avec le contenu d'exemple 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.
Envisagez d'utiliser un Makefile amélioré pour simplifier l'exécution de votre environnement de développement et le déploiement de votre application.
Résolution de l'erreur "make: *** missing separator"
L'erreur make: *** missing separator se produit dans un Makefile lorsqu'un caractère de tabulation est remplacé par des espaces avant une commande. Chaque commande dans un Makefile doit être précédée d'un caractère de tabulation, et non d'espaces.
Pour corriger cette erreur, assurez-vous qu'un caractère de tabulation (et non des espaces) précède vos commandes :
run:
<tab>command
Remplacez <tab> par un véritable caractère de tabulation pour résoudre le problème.