###出現したエラー
HerokuにPythonで書いたアプリをデプロイしようとしたら「Requested runtime is not available for this stack」エラーが出て、詰まりました。
情報収集
ネットで検索すると様々な原因と解決策が出てきました
-
runtime.txtの記法は正しいか?
→python-3.8.12
と書いていました。pは小文字で、間にハイフンを付けていますから間違っていないはずです -
指定したバージョンはサポートされているか?
→https://devcenter.heroku.com/articles/python-support#specifying-a-python-version
を参考にしました。python-3.8.12
は対応しているはずです
(2021年10月当時です。今は変わっているかもしれません) -
Python buildpackは最新か?
→https://devcenter.heroku.com/articles/python-support#checking-the-python-buildpack-version
を参考に一度ビルドパックをクリアしてheroku/python
を入れ直しましたが、エラーは直りませんでした -
Stackを変更してみるのはどうか?
元々のstackがHeroku-20
だったので、Heroku-18
に変更してみましたが、やはりエラーは直りませんでした
###思わぬ解決策
手詰まりになったので、https://devcenter.heroku.com/articles/python-support#checking-the-python-buildpack-version
を読んでいると、気になる記述がありました
By default, newly created Python apps use the python-3.9.7 runtime
「あれ? これバージョン指定しなくてもよくない?」
試しに僕は__runtime.txtを削除__してみました
するとデフォルトのpython-3.9.7
がインストールされて、無事デプロイ出来ました!
python-3.9.7
で動くアプリケーションなら、runtime.txtを削除するのも手ですね