I am trying to run a python file on my heroku. I tried not setting a build pack as well as setting one and neither seems to work. The only files in my branch are a .py and the .git folder
Here is an error example:
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 590 bytes | 590.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to google-results.
remote:
https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-python
You need the following 2 files additionally in your git repo: runtime.txt and requirements.txt
runtime.txt is responsible for which Python version your program is going to use.
cat runtime.txt
python-3.7.2
supported runtime.txt version changes from time to time so check out https://devcenter.heroku.com/articles/python-runtimes
requirements.txt is needed to specify which libraries from https://pypi.org/ your project is depending on. Be sure to specify a version to avoid breakage.
You can get a list of your currently installed python libraries with the command: python -m pip freeze > requirements.txt
Related
I deployed my django app to heroku and its working well. When I change something in project on local files and want to push to heroku It always push all files and it takes time.
> git add templates/post/detail.html
> git commit -am "read more"
[master 153e38f] read more
2 files changed, 3 insertions(+), 3 deletions(-)
> git push heroku master
I use these commands. But it's deploying everything:
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 8 threads
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 695 bytes | 695.00 KiB/s, done.
Total 7 (delta 5), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: ! Python has released a security update! Please consider upgrading to python-3.8.6
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> No change in requirements detected, installing from cache
remote: -----> Installing pip 20.1.1, setuptools 47.1.1 and wheel 0.34.2
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote: -----> $ python manage.py collectstatic --noinput
remote: 1392 static files copied to '/tmp/build_57ea00eb/staticfiles', 3734 post-processed.
remote:
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 280.5M
remote: -----> Launching...
remote: Released v15
remote: https://xxxxxxxxxx.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/xxxxxxxxxxxxxx.git
2d9ba8e..153e38f master -> master
The file that I changed around 1mb but it pushes 280mb. So what's the problem with it?
If you don't want to push your static file for every time then run this command :
heroku config:set DISABLE_COLLECTSTATIC=1
Enable static file for future:
heroku config:unset DISABLE_COLLECTSTATIC(for future use).
I am working through the learning log project in Python Crash Course by Eric Matthes, specifically working on the learning log app. I am trying to deploy to heroku but get this error:
(ll_env) C:\Users\benpg\Documents\Coding\Python\learning_log>git push heroku master
Enumerating objects: 54, done.
Counting objects: 100% (54/54), done.
Delta compression using up to 4 threads
Compressing objects: 100% (46/46), done.
Writing objects: 100% (54/54), 16.54 KiB | 940.00 KiB/s, done.
Total 54 (delta 4), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: ! Python has released a security update! Please consider upgrading to python-3.7.3
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing python-3.7.4
remote: -----> Installing pip
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pacific-refuge-12657.
remote:
To https://git.heroku.com/pacific-refuge-12657.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/pacific-refuge-12657.git'
Tried everything here including the two other questions linked at the start, no luck.
Here's my requirements.txt:
Django==1.8.4
dj-database-url==0.3.0
dj-static==0.0.6
django-bootstrap3==6.2.2
gunicorn==19.3.0
static3==0.6.1
psycopg2>=2.6.1
Edit:
I am using django 2.2.4. My requirements.txt is the way it is because there is a note in the book saying 'if you're using Windows, make sure your version of requirements.txt matches the list shown here regardless of which packages you were able to install'. Why is this?
This is the first requirements.txt I had, autogenerated except for the last line. This one didn't work either, same error message:
dj-database-url==0.5.0
dj-static==0.0.6
Django==2.2.4
django-bootstrap3==11.1.0
gunicorn==19.9.0
pytz==2019.2
sqlparse==0.3.0
static3==0.7.0
psycopg2>=2.6.1
Just had the same issue, changing the Python version back do 3.7.3 fixed it. Was able to build python and execute.
I want to deploy my Django application to Heroku but I'm having trouble when I try to push. When I run git push heroku master it says:
Counting objects: 99, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (97/97), done.
Writing objects: 100% (99/99), 2.51 MiB | 98.00 KiB/s, done.
Total 99 (delta 22), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> App not compatible with buildpack: https://buildpack-registry.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 mammadovs.
remote:
To https://git.heroku.com/mammadovs.git
I manually set my buildpack by running heroku buildpacks:set heroku/python.
You haven't declared any dependencies.
Decide if you want to use Pipenv or pip and add the appropriate dependency files to your repository. If you're new to this the simplest solution is likely to add a requirements.txt file containing
Django==2.2.3
to the root directory in your project. If you have other dependencies, add them too. Then commit the file and redeploy.
Defining your dependencies is important and you should always do it as a best practice. But it's required on Heroku. How else would Heroku know that it should install Django and whatever other libraries you use?
See https://devcenter.heroku.com/articles/getting-started-with-python#declare-app-dependencies
I have followed the instructions given under a tutorial (Link here). I have even included the runtime.txt file with the proper version of Python. I have searched everywhere but no solution seems to work. My GitHub project link for reference:
https://github.com/MithilRocks/chakri
The error message:
PS C:\Users\Mithil Bhoras\Documents\GitHub\chakri\chakri> git push heroku master
Counting objects: 90, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (80/80), done.
Writing objects: 100% (90/90), 8.78 MiB | 234.00 KiB/s, done.
Total 90 (delta 26), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: ! No default language could be detected for this app.
remote: HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to chakrilevels.
remote:
To https://git.heroku.com/chakrilevels.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/chakrilevels.git'
For future readers, the same solution as #hansTheFranz's comment, but from the command line:
At app creation: heroku create --buildpack heroku/python app_name
For an existing app: heroku buildpacks:set heroku/python
Also, the official Heroku Buildpack: Python documentation could help.
you can write requirements.txt by small litter to "r" not Requirements.txt
if you do not have requirements.txt file
you should make this file
in "cmd" can write this line
freeze > requirements.txt
I have been working on a Django project that I am trying to deploy to Heroku. I've followed a tutorial from Python Crash Course. When I enter git push heroku master, I get the following as a response:
Counting objects: 73, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (65/65), done.
Writing objects: 100% (73/73), 26.20 KiB | 0 bytes/s, done.
Total 73 (delta 8), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: ! The latest version of Python 3 is python-3.6.2 (you are using Python-2.7.12, which is unsupported).
remote: ! We recommend upgrading by specifying the latest version (python-3.6.2).
remote: Learn More: https://devcenter.heroku.com/articles/python-runtimes
remote: -----> Installing Python-2.7.12
remote: ! Requested runtime (Python-2.7.12) is not available for this stack (heroku-16).
remote: ! Aborting. More info: https://devcenter.heroku.com/articles/python-support
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to fathomless-scrubland-11916.
remote:
When I Python --version the cmd line returns 2.7.14 which is the most up-to-date version. I feel like this error is telling me I need to use Python3 but their site says that 2.7.14 is supported as well. My runtime.txt specifies 2.7.14.
Please try python-3.5.2 in runtime.txt
though it gives a warning it still works