はじめに
みなさんこんにちはALEXです。WEBアプリを開発するのに、まず使いたいのはHerokuですね。Herokuを使いこなせると、とても簡単にWEBアプリをリリースできます。当社でも大活躍しています。
ただ、Herokuにアプリをデプロイするまでが、なかなか大変な道です。私の生徒さんの中にも、デプロイの前に挫折しかかってしまう方が多いです。Google先生に聞きながら色いろいろやっているうちに、こんがらがってしまってそのまま・・・、となる方も多いかと思います。
ここでは、Python/FlaskでHerokuを使いたい方のために、Push時に起こるトラブルの内容と対策を紹介しますので、ご覧になってください。
今回の「ファイルのスペルを間違えてPushできない」はGoogleでも見つからないと思いますよ!!
<前提条件>
・Herokuのアカウントは取得済み
・HerokuのApp名は取得済み
・GitHubアカウント取得済み
・Git add . とgit commit -m ‘hogemoge’までは出来ている
Herokuにpushできない。
<事例1>ファイルのスペルを間違えてPushできない
Flaskを使ったアプリを作成し、ローカルでは動作確認できました。
ファイル構成は以下の通りです。
/flaskApp
│ ├── app.py #メインのアプリケーション
│ ├── Procfile #
│ ├── Requirement.txt #開発環境で使用しているモジュールをherokuに伝えるためのファイル。
│ ├── Runtime.txt #アプリケーションのdynosがHerokuプラットフォーム上で実行するコマンドを宣言するためのメカニズム。
│ ├── templates/
│ │ ├── layout.html #共通部分のHTMLを記述
│ │ ├── index.html #アプリケーションで呼び出すHTML
これらのファイルをgitbashでgit add . と git commit を使ってコミットしました。そして最後にherokuにプッシュすれば完成です。
1 |
git push --set-upstream https://git.heroku.com/***.git master |
ここで、***はapp名です。
しかし、無情にも返ってきたのは以下のコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
Counting objects: 10, done. Delta compression using up to 4 threads. Compressing objects: 100% (7/7), done. Writing objects: 100% (10/10), 1.87 KiB | 0 bytes/s, done. Total 10 (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 ***. remote: To https://git.heroku.com/***.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/alxco-app.git' |
「o default language could be detected for this app.」
と出ました、いったいなんだろう・・・・・。「Herokuにpushできない」ググってみると、色々出ます。いろいろ試してみました。でも借りません。この問題に直面した生徒さん丸々1日なやみました。
一緒にいろいろやりました。それでもうまくいかず、Herokuのチュートリアルのファイルを使ってみようということになり、クローンして、ひとまずこちらのファイルをフォルダに入れ替えました。
あ、(実は上に答えがあります)・・・・・
Requirement.txt じゃない。Requirements.txtだ
えー、そんなことでこんなエラー出るのかな?ひとまずpush
できました!!今度はしっかりdoneできました。
Procfile
Requirements.txt
Runtime.txt
の三つのファイルのスペルを間違えると、エラーが出ます。参考になさってください。
まとめ
いかがでしたか?このトラブルシュートはstackoverflowにもないと思います。三つの設定ファイルのスペルを間違えないようにしましょう。