Reputation: 451
I'm trying to run a simple hello world python program on my heroku server. I'm new to heroku.I was able to successfully deploy my script to heroku. My python script and procfile are given below,
hi.py
print("hello world")
Procfile
web: python hi.py
I got "Hello world" as output when i ran heroku run web
on my terminal.But when i try to run the app using heroku web url it shows the following error.
Application Error An error occurred in the application and your page could not be served. Please try again in a few moments.
What did i do wrong here? I'm newbie to heroku & its concepts, please do bare.
Upvotes: 10
Views: 10624
Reputation: 5631
There are three types of dyno configurations available on Heroku:
If you're interested in running a script, do not care about receiving web traffic on it, and don't have a queue to process, then One-off dynos are likely what you'll want to use. This would be useful for database migrations or backups and whatnot.
Minimal example below.
This assumes you have already created your app on Heroku and are able to use Herolu CLI from the command-line.
A minimal “hello world” Python script would then look like this. Only 2 files required:
requirements.txt
Required, but can be left empty.task.py
with content print("hello world")
Then deploy to Heroku, e.g.:
git add .;
git commit -m "My first commit";
git push heroku master
After that, you'll be able to run your script with heroku run python task.py
(and should see the long-awaited hello world
in the output.)
If you want to run your program at specific times, use the free Heroku Scheduler add-on.
FYI, Procfile
is optional. If you set it to hello: python task.py
then you'll be able to run your program with just heroku run hello
.
(Note that leaving requirements.txt
empty will trigger You must give at least one requirement to install (see "pip help install")
warnings on deploy. It's just a warning though and doesn't prevent proper deployment of the program.)
Upvotes: 18
Reputation: 113978
I disagree and state you want flask
main_app.py
import flask
app = flask.Flask(__name__)
@app.route("/")
def index():
#do whatevr here...
return "Hello Heruko"
then change your procfile to web: gunicorn main_app:app --log-file -
Upvotes: 8