web-dev-qa-db-fra.com

Heroku/python n'a pas réussi à détecter set buildpack

Je suis un novice Django, j'ai créé une application et je souhaite la déployer à l'aide de Heroku. Cependant, quand je fais git Push heroku master (je suis les débuts de Heroku), voici ce que j'ai obtenu:

Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (33/33), done.
Writing objects: 100% (36/36), 19.22 KiB | 0 bytes/s, done.
Total 36 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote: 
remote:  !     Push failed
remote: Verifying deploy....
remote: 
remote: !   Push rejected to dry-waters-63931.
remote: 
To https://git.heroku.com/dry-waters-63931.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to Push some refs to 'https://git.heroku.com/dry-waters-63931.git'

Mon répertoire racine:

├── assignment
├── household_management (Django app)
├── templates
| 
├── db.sqlite3
|
├── manage.py

Je serai très apprécié si vous pouvez aider. Je suis vraiment déprimé en ce moment ...

12
user4754843

Vous devez ajouter un fichier requirements.txt contenant tous les modules nécessaires à l'exécution de votre application.

Vous pouvez faire pip freeze > requirements.txt pour geler tous vos modules dans un fichier. Je ne recommanderais cela que si vous utilisez un virtualenv, sinon, tous vos modules seront ajoutés.

Dans tous les cas, il vous suffit de déterminer exactement les modules requis par votre application, de créer un fichier appelé requirements.txt et de le placer dans votre répertoire d’application.

La syntaxe d'un fichier de configuration est la suivante:

package name == version #
package name == version #
package name == version #

Remarque: Il est facultatif de spécifier un certain numéro de version.

Voici un exemple de fichier de configuration (tiré de this tutorial):

Flask==0.11
Jinja2==2.8
gunicorn==19.6.0

N'oubliez pas de valider vos exigences.txt 

29
Harrison

Voici les étapes à suivre pour résoudre le problème ci-dessus: 

  1. Créez un fichier exigences.txt dans votre dossier d'applications. 

  2. Exécutez la commande pip freeze> Requirements.txt à partir du même dossier.

  3. Maintenant, validez vos modifications. 

    git add. 

    git commit -m "exigences ajoutées"

    git Push maître heroku

Voici le problème, dans mon cas: je l'ai fait sans ajouter de modules, car pip peut également installer automatiquement une dépendance à partir de votre base de code locale. Après avoir exécuté la commande lorsque j’ai vérifié mon fichier require.txt, des modules avaient déjà été ajoutés automatiquement. 

NOTE: Si cela ne vous arrive pas, vous pouvez le faire manuellement comme l'a dit Harrison dans sa réponse. 

  1. Cette étape n’est possible que si vous obtenez une erreur semblable à mon cas. Une erreur concernant conda == version ne peut pas être trouvée. Comme les modules ont été ajoutés automatiquement en fonction de ma base de code locale, la version de Conda est installée sur mon ordinateur local, ce qui explique pourquoi elle a été ajoutée automatiquement dans mon fichier require.txt. Tout ce que vous avez à faire est de le supprimer du fichier exigences.txt. 

  2. Commettez vos modifications à nouveau.

Pensé que cela pourrait aider certains d'entre vous qui ont fait face à des erreurs similaires.

1
Appy Sharma

Vous devez simplement ajouterRequirements.txtà votre dossier principal de l'application.

1
shubham kapoor