第三話 山の日の三連休② 〜Python開発環境の構築〜
From 2019/8/11 Sun. to 2019/8/12 Mon.
翌日も引き続き、開発のための環境の構築が続く。
小さく段階を踏んでいくということで、実行環境であるherokuへのデプロイは一旦置いておき、課題を二つに分けることにした。まずは、自分の端末上でAtomでプログラムを編集し、gitのリポジトリ と連携させる。それができてから、WebフレームワークFlaskを導入して、自分の端末上での”Hello World”を目指す。この二つを解消してから最後に、herokuへのデプロイを試みる。
エディタとしてAtomを使って、チュートリアルを見ながらgitと連携させることは意外とすぐにできた。次は”Hello World”だ。
チュートリアルをなぞることで、Python仮想環境「Anaconda」なるものにFlaskを導入し、”Hello World”することはできた。ただ、そうするとAnacondaの中で動かしているプログラムをAtomから編集できず、gitのリポジトリ にも共有できない。Atomで編集するには、手動でプログラムをコピーするという荒技を使ってみたが、そんなことするならAnaconda使う利点が全くわからない。
そうこうする間に連休最終日がやってきた。といっても、開発による夜更かしが過ぎて夕方になっていたが。
Anacondaを使うことは諦めて、これもチュートリアルを真似して自分の端末のプログラムをAtomで編集し、gitを介してherokuに連携することにした。Atomからgitの連携はできていたので、チュートリアルをなぞってそれなりにすんなりといく。次に、LINEBotと連携しなければならない。
LINEBotからheroku上のプログラムを呼び出すには、herokuにLINEBot用のプログラムライブラリを導入しておく必要がある。その後、LINE側の設定画面にherokuのプログラムにアクセスするためのURLを入力し、LINEからheroku上のプログラムにアクセスする。また、herokuへのFlaskの導入も必要となる。herokuにも自分の端末と同じく導入する必要があるかと思いきや、設定ファイルにFlaskやLINEBot用のライブラリの名前を記載することで、herokuが勝手に導入してくれるようだった。これは確かにお手軽だった。
ここに来てようやく、Anacondaを使う意味がおぼろげながら見えてきた。Pythonのインストール方法が複数あるように見えたのは、自分の端末にPythonをインストールするか、仮想環境という、別の端末を自分の端末の中にもう一つ用意してその中に入れるかの2パターンあったからだった。仮想環境で動くプログラムとherokuで動くプログラムは全く別物となるため、AtomでAnacondaのプログラムは編集できなかったわけだ。利点として異なるWebフレームワーク導入した端末をたくさん並存させられることや、設定ファイルを出力させることで、それをherokuに読ませれば仮想環境と同じ状態を実行環境上に再現できる手軽さがある。
herokuとLINEという異なるシステムを連携させて動かすことは、自分の端末上でプログラムを動かすのとは違った難しさがある。設定ファイルの内容が誤っていたり、スペルミスがあったりしてなかなか動いてくれないが、なんとかおうむ返しにたどり着いた。やっと最低限の開発環境が出来上がった。
三連休は、チュートリアルレベルのサンプルコードを動かすだけで過ぎ去った。連休に開発が終わるとは、大変に甘い見積もりであったのである。