J'ai essayé de courir:
$ git Push heroku master
-----
Total 7121 (delta 2300), reused 6879 (delta 2228)
! Heroku Push rejected, no Cedar-supported app detected
To [email protected]:fierce-atoll-4127.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to Push some refs to '[email protected]:fierce-atoll-4127.git'
Les seules réponses possibles que j'ai trouvées suggéraient que si vous avez un trait de soulignement dans le nom de votre application, cela pourrait être à l'origine de ce problème. J'ai eu un "-" et je l'ai enlevé, mais je ne peux toujours pas obtenir ce travail.
Ce qui suit se trouve dans mon fichier Requirements.txt, qui se trouve dans mon dossier src, aux côtés de settings.py et de manage.py.
Django==1.4.3
South==0.7.6
distribute==0.6.31
ipython==0.13.1
wsgiref==0.1.2
dj-database-url==0.2.0
Juste eu ce problème aussi. J'ai fait ce qui suit pour le résoudre: (en supposant que vous êtes dans le répertoire du projet)
rm -rf .git
git init
git add .
git commit -m "First commit"
heroku create --stack cedar
git Push heroku master
Une solution légèrement complexe pour créer une nouvelle application, mais au moins cela fonctionne. J'espère que cela pourra aider!
Vous devrez probablement ajouter un fichier requirements.txt
. vérifier la documentation de l'application python
J'avais un problème similaire et, dans mon cas, c'était parce que mes applications se trouvaient en dehors de mon dossier de projet. Heroku s'attend à avoir cette structure:
Procfile
requirements.txt
static/
myproject/
manage.py
app1/
app2/
..
rm -rf .git
git init
git add .
git commit -m "First commit"
heroku create --stack cedar
git Push heroku master
Cela a fonctionné pour moi aussi!
Django étant une application python, vous devez disposer de requirements.txt
et setup.py
à la racine de votre référentiel et non du sous-répertoire src. Voir https://github.com/heroku/heroku-buildpack-python/blob/master/bin/detect
Mon erreur stupide a été de mal orthographier requirements.txt
en tant que requirments.txt
erroné. Je n'avais pas besoin de setup.py
.
De plus, j'ai besoin de stocker le dépôt git dans Github. Le simple fait de le créer localement n'était pas suffisant.
J'ai longtemps lutté avec ce problème et la seule solution était de Vincent van Leeuwen , mais je ne comprenais pas pourquoi. Le problème s'est avéré que je travaillais depuis une branche locale autre que la branche principale. Alors quand je courais
git Push heroku master
Je poussais réellement
(local) master->(heroku) master
et pas
(local) current_branch -> (heroku) master
comme je voulais. Cela a échoué parce que ma branche principale locale ne disposait pas d’exigences.txt, Procfile, etc.
La solution est:
git Push heroku current_branch:master
Voir heroku docs pour plus d'informations.
J'espère que cela t'aides.
Pour que tout le monde supprime son historique Git pour que cela fonctionne ... la seule raison qui fonctionne est que la validation initiale dans le nouveau référentiel contient les fichiers nécessaires à Heroku pour reconnaître votre application.
J'ai rencontré ce problème car j'ai ajouté les variables Procfile
et requirements.txt
à mon application et j'ai essayé de pousser vers Heroku avant de les commettre. Alors quand j'ai poussé à Heroku, je ne poussais pas ces fichiers!
Faire un commit avec tous les fichiers nécessaires et then push devrait résoudre ce problème, et est nettement préférable à la suppression de tout l'historique de Git.
J'espère que cela t'aides!
Ma situation est que mes codes sont nécessaires pour enregistrer à la fois sur Github et Heroku. Si j'utilise la solution suivante, rm -rf .git
supprimera la connexion à mon Github. Par conséquent, je ne peux pas transmettre mes codes à Github.
rm -rf .git
git init
git add .
git commit -m "First commit"
heroku create --stack cedar-14
git Push heroku master
Au lieu de cela, ma solution est la suivante:
$ heroku create
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
$ git Push heroku master
Heroku a besoin d'un fichier exigences.txt, qui aide Heroku à connaître les dépendances à installer pour votre projet Django. Vous pouvez utiliser un outil pour générer votre fichier exigences.txt.
Exécuter en ligne de commande
pip freeze > requirements.txt
ce qui créera un fichier exigences.txt avec tous vos paquets installés, tels que Django, Django-registration, etc ...
Ce lien peut être utile: http://tutorial.djangogirls.org/deploy/README.html
Vous devez ajouter le fichier require.txt à git, puis Push fonctionnera à coup sûr.
Toutes les solutions ci-dessus ne mentionnent pas que l’important est où est initialisé votre .git. En fait, lorsque vous essayez Push sur heroku, vous devriez le faire depuis le répertoire où vous avez initialisé le git lui-même. Le répertoire que vous téléchargez doit également être celui dans lequel vous avez des fichiers tels que
exigences.txt, Procfile, virtualenv, manage.py et .gitignore
etc. En résumé, Heroku a besoin de tous les fichiers pour comprendre le type de projet que vous souhaitez télécharger. Ces fichiers doivent donc être accessibles dans le répertoire racine.