- 投稿日:2019-11-28T22:02:16+09:00
anacondaの仮想環境で作ったアプリをherokuにデプロイ
表題のようなことをしようとし詰まったのでメモ。
やろうとしたこと
FlaskとTensorflowで画像分類のミニアプリを作っていました。ローカルではAnacondaを使い、仮想環境を構築していました。
詰まったこと
デプロイが出来ませんでした。エラーログでは、Tensorflowの2.0.0が本番環境でインストールできないとのこと。
試したこと
ローカルのTensorflowを1.15.0に下げてみました。ですが、そうすると今度はローカルでエラーが出るようになってしまいました。モデルに渡すパラメーターなどがバージョンにより少しづつ違うようです。
解決策
要するに問題は、ローカルの仮想環境ではcondaを使ってバージョン管理をしていたが、herokuにデプロイする際はpipを使わなくてはいけないことでした。
ですが、こちらの記事などから、herokuにデプロイする際もcondaを使えることを知りました。
HerokuでNumpy, Scipy, scikit-learnを利用する
上の記事通りにすれば問題ありませんが、一点注意点として、 後からBUILDPACKの指定を加えると、もともとあった指定と競合してうまく働きません。
そのため、一度下記のコマンドを打ってから、新たな指定を加える必要があります。
heroku buildpacks:clear