塗り絵ツクール2017 - Xnotepad というアプリを作ってみました。
webサーバはherokuで動かしていて、フレームワークはRuby on Railsでなのですが、画像の処理部分をpythonでやりたかったので、その時やったことを書いておきます。
私は開発環境にcloud9を使っていて、そこからgit push heroku masterしています。
ローカルでも手順は同じです。
STEP1
herokuのコンソールでpython –versionとするとちゃんと動いていて、pythonと打つとpythonのコンソールが使えます。 ですがこれだけではpythonのバージョンやpipなどが使えないので、正式に使えるようにしておきます。
以下のコマンドでheroku側にpythonを使う準備をしておきます。
heroku buildpacks:add heroku/python
STEP2
次にローカルで使いたいパッケージなどをpipでインストールし、pythonのコードを書いておきます。 herokuでも同じパッケージを使うために、以下を実行します。
pip freeze > requirment.txt
上記コマンドを実行すると、ローカルに入っているパッケージの一覧がrequirement.txtに書き込まれます。
STEP3
Procfileを以下の内容で作成します。拡張子なしでファイル名をProcfileとしてください。
web: bin/rails server -p $PORT -e $RAILS_ENV
bin~ はheroku ps としたときに web (Free): の右に出ているやつです。
STEP4
あとは上記をコミットし、herokuへプッシュすればOKなのですが、
バージョンの違いなどからpip install時にこけることがあります。
解決策としては、
エラーメッセージにどのパッケージを入れることができないか表示されるので、バージョンを調べて合わせるか、私の場合は使っていないパッケージだったのでrequirement.txtから削除しました。
これでパッケージもインストールされ、railsからsystemメソッドなどでpythonのスクリプトを呼ぶことができます。