質問: PythonでDiscordのTRPG用のダイスボットを自作してみた - Qiita 上記サイトの手順通り、GitからforkしてHerokuで動かそうとしたのですが、 ``` -----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure ! Push failed ``` となってしまい、デプロイすることができません。 念のため、GitHub リポジトリは以下になります。 RTa-technology/discord_dice_bot どなたか原因などわかる方がおられましたらご教授いただければ幸いです。 よろしくお願いいたします。
回答: ファイル名が間違っています。 `requirement.txt` ではなく `requirements.txt` です。この回答を投稿した時点では、元の記事から間違っていますね。 以下、どのようにしてこれに気付いたかのログです。 まずエラーメッセージを読むと、Python buildpack に合致してない、というエラーが出ています。詳細は を読めと書いてあるので読みます。 すると Heroku ではそれぞれの buildpack が「自分向けのプロジェクトかどうか」を検出するための detection script を持っており、これに弾かれると類似のエラーが出ると分かります。 そこで Python buildpack の `bin/detect` を読んでみました。こう書かれています。 ``` # Exit early if app is clearly not Python. if [ ! -f "$BUILD_DIR/requirements.txt" ] && [ ! -f "$BUILD_DIR/setup.py" ] && [ ! -f "$BUILD_DIR/Pipfile" ]; then exit 1 fi ``` Python のプロジェクトかどうかを、`requirements.txt`、`setup.py`、`Pipfile` のどれかがあるかどうかで判定しています。 今回のプロジェクトでは `requirements.txt` を使おうとしています。そこでファイルを確認してみるとファイル名が間違っていると気付きました。