Pyhton Heroku でpushできなくてあきらめる前に見るページ(2)

はじめに

みなさんこんにちはALEXです。WEBアプリを楽に開発するのに必要な、Herokuですが、インストールからセットアップにちょっと癖があります。特に一緒に必要なGitHubも同じように癖があり、私の生徒さんの中にも、デプロイの前に挫折しかかってしまう方が多いです。Google先生に聞きながら色いろいろやっているうちに、こんがらがってしまってそのまま・・・、となる方も多いかと思います。

ここではPython/FlaskでHerokuを使いたい方のために、Push時に起こるトラブルの内容と対策を紹介します。

過去のシリーズ

Heroku でpushできなくてあきらめる前に見るページ(1)

 

<前提条件>

・Herokuのアカウントは取得済み

・HerokuのApp名は取得済み

・GitHubアカウント取得済み

・Git add . とgit commit -m ‘hogemoge’までは出来ている

 

Herokuにpushできない。

<事例2>ファイルの置き場を間違えてPushできない

Flaskを使ったアプリを作成し、ローカルでは動作確認できました。

ファイル構成は以下の通りです。

/flaskApp
│ ├── app.py #メインのアプリケーション
│ ├── config/ #初期ファイル置き場
│ │ ├── Procfile  #アプリケーションのdynosがHerokuプラットフォーム上で実行するコマンドを宣言するためのメカニズム
│ │ ├── Requirement.txt  #開発環境で使用しているモジュールをherokuに伝えるためのファイル。
│ ├── Runtime.txt  #アプリケーションのdynosがHerokuプラットフォーム上で実行するコマンドを宣言するためのメカニズム。
│ ├── templates/
│ │ ├── layout.html #共通部分のHTMLを記述
│ │ ├── index.html #アプリケーションで呼び出すHTML

これらのファイルをgitbashでgit add . と git commit を使ってコミットしました。そして最後にherokuにプッシュすれば完成です。

ここで、***はapp名です。

しかし、今回も無情にも返ってきたのは以下のコードです。

「o default language could be detected for this app.」

生徒さんは初めてなので、とにかくわからない。Google先生に聞いたけれどもわからず、私に相談に来ました。

答えは構造にありました。これはいくつかGoogleにもありましたのですぐ原因がわかりました。

Procfile
Requirements.txt
Runtime.txt

のファイルを’config’というフォルダに格納していました。

これらのファイルはルートに置かないとエラーが返ります。ルートにP移動して再度Push。できました!!今度はしっかりdoneできました。

Procfile
Requirements.txt
Runtime.txt

の三つのファイルは必ずルートに置きましょう。参考になさってください。

まとめ

いかがでしたか?三つの設定ファイルはルートに置きましょう、ということです。