App not compatible with buildpack - Heroku
HerokuHeroku Problem Overview
When I run git push heroku master
this is what I get:
C:\Users\Emanuele-PC\Desktop\project-mm-beta>git push heroku master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 505 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> App not compatible with 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 project-mm-beta.
remote:
To https://git.heroku.com/project-mm-beta.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/project-mm-beta.git'
The code I am trying to deploy is just one file (it's a test because it's my first time using Heroku) and it's written in Python. I have already set the buildpack (python) but it still doesn't work. How can I solve?
Heroku Solutions
Solution 1 - Heroku
The Heroku Python Support will be applied to applications only when the application has a Pipfile or requirements.txt
in the root directory.
Visit the documentation to get detailed instructions.
Solution 2 - Heroku
I just found out... It's quite a silly issue. Make sure the git repo is initialized within the project root folder. Suppose the project is a Django app and the project folder created by Django is my-project
, the git repo needs to be initialized right within my-project
for Heroku to work...
Solution 3 - Heroku
add pipfile & procfile, & commit them , this solved for me :)
You can see the files I am speaking of on this heroku sample : link
heroku buildpack on github : link
Solution 4 - Heroku
You can try doing:
pip3 freeze > requirements.txt
heroku buildpacks:set heroku/python
git add .; git commit -m "add requirements.txt"; git push heroku master
Note: Make sure you're in your root directory of your Python project :)
Solution 5 - Heroku
try add a file named requirement.txt and enter anything you need like django
Solution 6 - Heroku
> Step 1) First setup the buildpack (programming-language )
For example : heroku buildpacks:set heroku/nodejs
Check for more info here : https://devcenter.heroku.com/articles/buildpacks
If the issue still exists, then follow next step > > Step 2) git init and currently used directory is > different, so this error is still thrown "App not compatible with buildpack:"
For example : git init
command was used executed at :- C:/sample_folder/
But modules and package.json is under nested sub-folder :-
C:/sample_folder/nodejs_app/package.json
> So move the files accordingly such that all the file are present under the same folder > and then run
git push heroku master
--happy coding!
Solution 7 - Heroku
I was getting this error because I was making changes to a different branch. So I was working of a feature branch, then running git push heroku master
. My changes had not been merged into my master branch, so thus the error. Once I merged in the Procfile to master I was able to push the changes up to heroku.
Solution 8 - Heroku
I was having the same error because I was not committing the files, make sure you run the command git add .
then git commit -m'message'
after changing any file, and then you can run git push heroku master
and also add the requirements.txt
and Procfile
correctly.
Solution 9 - Heroku
I had the same issue. Just make sure that you initialized the git repo inside the django project root. That way, your .git folder, .gitignore file, manage.py, requirements.txt, etc.. are on the same hierarchical level.
Solution 10 - Heroku
You can specify the buildpack for python by this method
CLI Installation
heroku buildpacks:set https://github.com/heroku/heroku-buildpack-python.git
Solution 11 - Heroku
First file: requirements.txt
containing something like: gunicorn==19.7.1
or whatever the results of pip freeze > requirements.txt
are.
Second file: Procfile
containing something like: web: gunicorn app:app
or potentially blank. Note that app:app
in this example is a reference to your python filename. It means that every time a web process is declared, and a dyno of this type is started, also run the command gunicorn app:app
to start your web server.
Then git add .
and git commit -m "added Procfile and requirements.txt"
.
Then run git push heroku master
to push from your local master
branch to the heroku remote
.
Solution 12 - Heroku
Finally make sure you're not ignoring requirements.txt
from your .gitignore, That was my problem.
Solution 13 - Heroku
-> Make sure your requirements.txt & Procfile are in the root folder.
-> run following commands if you are not in the master branch already.
git checkout -b master
git add .
git commit -m "your commit message"
git push -u origin master
git push heroku master
Solution 14 - Heroku
Check if you did the following steps:
-
Activate your virtual environment.
-
Run on your command prompt:
pip freeze>requirements.txt
-
Add
Procfile
in your main app directory (the same wheremanage.py
is);
inside Procfile you should insert:
web: gunicorn your_app_name.wsgi
Solution 15 - Heroku
Well, same happened to me while I was creating a first-time Heroku app.
Just add requirements.txt
. It will work fine.
Solution 16 - Heroku
I just removed README.md from my GitHub repository which was connected to my Heroku app, and that worked for me!
Solution 17 - Heroku
Check whether you have written correct spelling of Procfile and requirements.txt, because they are case sensitive and In my case after changing the procfile to Procfile it started working properly.