Posted at

いろいろワカラなくていいから取り急ぎPythonのWebアプリをherokuに置きたいときにやること


はじめに


○「有限会社チャボット」オフィス・中(夜)

   骨喰(23)と三日月(26)だけがいる。

   出口に向かう三日月が話しかける。

三日月「明日のデモ頼むよ。客のシステムと

 連携するのが『チャボット』のウリだから」

骨喰「PythonでWebアプリ作って、連携でき

 るようにしときましたから。見ます?」

   骨喰、キーボードを叩く。PCの画面に

   会話が表示される。骨喰が発話すると、

   発話から助詞が抜かれカタカナに変換

   されたものが『チャボット』から返る。

骨喰「自然言語処理部分がお客さまシステム

 の想定です」

三日月「これならいけるわ。じゃ、明日、よ

 ろしく……お前さ」

   三日月、骨喰の服を上から下まで見る。

骨喰「さすがにスーツで行きますよ」

三日月「そっか、じゃ、明日!」

   三日月、少し進んだところで振り返り、

三日月「そのPythonで作った奴って、イン

 ターネットからアクセスできんの?」

骨喰「……いえ、社内からだけですけど」

三日月「それ駄目だろ。明日の客先デモは社

 内ネットにアクセスなんてできねえぞ」

骨喰「え?」

三日月「社外からもアクセスできるようにし

 といて。チャチャッと。客んとこ朝10時だ

 から。遅れんなよ!」

   三日月、出ていく。骨喰、何か言いた

   げだが言えず時計を見る。11時30分。

   慌てた手付きで終電を調べる。12時。

骨喰「てつ……や?」

   骨喰、自分の服を見て、

骨喰「いや、駄目だ」

   骨喰キーボードを叩く。画面にHeroku

   が表示される。骨喰、爪を噛みながら

   画面を睨み、

骨喰「どうすりゃいいんだよ?」

   骨喰、画面を見てはクリックしていく、

   マウスを叩きつけ立ち上がり、大声で、

骨喰「結局どうすりゃいいんだって!」

   骨喰、肩で息をし、腰を下ろし『いろ

   いろワカラなくていいから取り急ぎ

   PythonのWebアプリをherokuに置き

   たいときにやること』と打ち込み、エ

   ンターキーを押す。


こうして骨喰くんがたどり着いたのがこの記事です。

取り急ぎPythonで書かれたWebアプリをherokuにデプロイする方法を説明します。


必要なもの


  • ローカルで動作するPytyonで書かれたWebアプリ(この記事ではhello_bottle.pyとします)

  • Git

hello_bottle.py(クリックで展開)


hello_bottle.py

import os

from bottle import route, run, template

@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)

run(host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))


を使いました。pip install bottleした後にpython hello_bottle.pyとすればWebアプリが起動します。

起動した状態で、ブラウザからhttp://localhost:8080/hello/sgigagaeruにアクセスすれば画面にHello sgigagaeru!と表示されます。



1. Procfileを作る


Procfile

web: python hello_bottle.py


Webアプリを起動するコマンドをProcfileに書きます。

web:のあとにWebアプリを起動するコマンドを書きます。

hello_bottle.pyと同じディレクトリに入れて下さい。


2. requirements.txtを作る


requirements.txt

bottle


必要なライブラリがある場合はrequirements.txtに書きます。

この記事の例ではbottleライブラリが必要なので、それを書きます。


3-0. Herokuアカウントを作る

Herokuのアカウントを持っていない場合はサインアップページから作成します。


3. Herokuアプリを作る

Herokuにログインするとダッシュボードが表示されます。

右上の「New」から「Create new app」を選んでアプリを作成します。

「Create new app」は右上にあります(クリックで画面イメージが出ます)

dashboard.heroku.com_auth_heroku_callback_code=8c453a6f-0230-4efe-b6c5-6b25baab9190.png好きなアプリ名を付けます(クリックで画面イメージが出ます)dashboard.heroku.com_auth_heroku_callback_code=8c453a6f-0230-4efe-b6c5-6b25baab9190 (1).png

今回はアプリ名はsgigagaeruにしました。

アプリ名に.herokuapp.comを加えたURLで、デプロイしたWebアプリにアクセスできるようになります。今回の場合だとsgigagaeru.herokuapp.comです。


4. "Deploy using Heroku Git"にしたがってやれば完了

dashboard.heroku.com_apps_sgigagaeru_deploy_heroku-git.png

アプリ作成が終わるとこのページが表示されます。

下の方に"Deploy using Heroku Git"とあり、ここに書かれている通りにやると完了です。


4-1. Heroku CLIのインストール

インストールしていない場合は、画面の指示にしたがってインストールして下さい。


4-2. Heroku login

ログインがまだの場合はheroku loginと入力してログインします。

$ heroku login

heroku: Press any key to open up the browser to login or q to exit:

上の内容が表示されたら、なにかキーを押して下さい。

ブラウザにHerokuのページが表示され、ログインを求められます。

ブラウザでログインすると、コマンドラインでのログインも完了になります。


4-3. Git

hello_bottle.pyのあるディレクトリに移動して下さい。

ファイル構成は下のようになっているはずです。

.

├── Procfile
├── hello_bottle.py
└── requirements.txt

あとはページの指示通りにGitコマンドを打っていけば完了です。

$ git init

$ heroku git:remote -a sgigagaeru
$ git add .
$ git commit -am "make it better"
$ git push heroku master

sgigagaeruは作成したアプリ名に変えて下さい。

https://sgigagaeru.herokuapp.com/hello/sgigagaeruにアクセスしてみましょう。

Hello sgigagaeru!と表示されます。


おわりに

《映画刀剣乱舞》は日本映画史に残すべき佳作だと思いました。