Pythonにはさまざまな環境構築手法やキーワードが出てきて始めたばかりの人は間違いなく混乱するので混乱しないよう備忘録として環境構築手法をまとめておきます。
環境構築手法のイメージ図
オフライン環境
実務ではこちらがメインです。
選択肢1:Docker環境
自分のPCに直接Pythonをインストールしたい場合は不要です。仮想環境なので環境を他人と共有しやすいですし、不要になったらいつでも削除できますし、パッケージのバージョンの不一致が起こりづらいというメリットがあります。上記のメリットが大きいので実際の開発現場でもよく使われています。
Python環境だけでなくDBなどの構築用途でも使えるのでDocker単体で構築するというよりはAnacondaなど他のPython環境構築手法と組み合わせて使うケースもあります。
Docker
最近人気
VirtualBox/Vagrant
2010年代前半〜半ばくらいまではよく使われていました。今はあまり使われないです。
選択肢2:pyenv+ venvで構築
pyenv
Macならこれを使います。
py.exe
Windowsならこれを使います。
モジュールを管理する目的
venv + pip
公式で標準の環境構築手法です。推奨されています。今後なくなることはまずないという意味で良いです。
pipenv
得られる効用としては「venv + pip」とほぼ変わらないです。ただ、venvとpipの二つの機能を組み合わせて便利に使えるようにしたものです。
選択肢3:Anaconda(Miniconda)で構築
仮想環境やパッケージ管理、pythonのバージョン管理など全部入りになっています。(pyenvの中にanacondaを入れ込む事もできますが、基本的にはpyenv的な役割も持つ用途が多いです。)
anaconda環境ならpyenvやvenvを使わなくても案件ごとに別のpython環境を構築することが可能になります。
機械学習やデータ分析系のモジュールをあらかじめある程度用意してくれているのでこの用途であればかなり良いです。pipだと機械学習系のパッケージの依存関係の解決などは大変ですが、その辺をあらかじめ解決してくれます。なお、AnacondaはJupyter Noteなどの実行環境も付属してくれます。
OSによってダウンロードやコマンドが若干変わってくる。おすすめの手法は今回紹介するこれになります。ただ、商用利用は有償になります。
MinicondaはAnacondaを最小限のパッケージにしたものです。必要なパッケージは都度インストールが必要になります。容量が小さく無料で使えます。
実行環境
実際に上記で環境構築したリソースを用いてPythonのプログラムを実行できる環境のことです。REPL、Visual Studio Code、対話型実行環境のJupyter Note、PyCharmなどが有名です。どれを選べば良いかわからない方は無料で高機能のVisual Studio Codeをまずはファーストチョイスするのがおすすめです。詳しくは以下の記事でも解説しています。
【Python】対話実行モード(REPL)。開発環境(PyCharm、IDLEなど)
どの環境を選ぶか。
結論:用途によります。
Windows向けソフト作成がしたい場合
DockerはWindowsのイメージが使えないので選択肢から外れます。Anaconda or pyenv + venvのどちらかを選びます。例えば、副業でWindows環境向けにスクレイピングソフトなどを作ろうと考えていらっしゃる方はこれに該当するんじゃないかと思います。
Webアプリケーションを作りたい場合
FlaskやDjangoなどですね。サーバーはLinux系を採用することが多いので、Dockerに軍配が上がるんじゃないかと思います。AnacondaでもWebアプリケーションは作ることはできますが、DBをどうするかとか考えたらやっぱりコンテナ化できるDockerでまとめて作ってしまう方が良いんじゃないかと思います。
機械学習用途
機械学習で使えるパッケージを用意してくれているのでAnacondaが良いと思います。(元々Anacondaはそういう用途で作られたみたいですし)
クラウド環境
環境構築が面倒でいますぐPythonを始めたいという学習目的などに向いています。
Colaboratory
Jupyter LabをベースにしているGoogleの対話型の環境です。アクセスするだけですぐ使えるのでCloud9よりこちらの方が便利です。OSの違いがない。完全無料。こちらもおすすめ。
- パッケージのインストールが不要
- 機械学習で使うGPUを使うのも無料
- 作成したファイルはGoogleドライブで保管できるので簡単に共有できる。
- ただ、ローカルファイルは読み込めないのでGoogle Driveにアップロードする必要があります。(もしこれが面倒な場合はJupyter NoteかLabを使うようにすると良いでしょう。)
Cloud9
AWSのサービスです。無料期間は1年間だけ。
この記事へのコメントはありません。