概要
自分の復習用のメモですが、誰かの役に立つかも・・・と思い、投稿しました。
読者はPythonプログラミング初学者を想定しております。
Pythonの環境構築は、古い情報も多く、ネットで調べると色々な情報が混在しているため、
初学者にとっては最初に躓く壁です。
Python環境構築あるある
- Pythonの2系と3系の違いがわからない。どちらをいれるべき?
- 環境構築に関してググると、"virtualenv"・"pyenv"・"easyinstall"・"setuptools"など、色々検索に引っかかるがどれを使えばいい?時代遅れはどれ?
- 結局、初学者でも簡単に導入でき、Pythonのバージョンアップにも楽に対応できる拡張性・汎用性のある方法は?
Python環境構築するにあたり
他の記事を見て、混乱しないよう簡潔にオススメの環境構築の結論を述べます。
今後のことを考え、Python3の開発環境を構築しましょう(今回、紹介する導入方法ではpython2系・3系どちらでも対応可能)
「pyenv/pip/conda」この3つのコマンドが使える環境を構築することが、ベター!
初心者は公式のPythonをいれるのではなく、condaコマンドの使える"anaconda"または"miniconda"を入れることがオススメです。"anaconda"・"miniconda"はPythonのディストリビューションの一種で、主要ライブラリが揃った状態で開発を進めることができます。
Pythonの環境構築
virtualenv・easyinstall・setuptoolsを使用して、pythonの環境構築するのは古い情報。
導入に使用するのは、「pyenv(installerからダウンロードすると楽)、pip、conda」です。
とりあえず、導入するものがどんな役割を果すのかは、後で説明するのでまず環境を構築します。
-
pyenvのインストール。
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
$ pyenv update
```
2. pythonのインストール
* pyenvを利用(上記でダウンロードしたやつ)
```
$ pyenv install --list|grep miniconda # インストール可能なリストを表示。minicondaがオススメ
$ pyenv install xxxxxx # バージョンxxxxxxをインストール
$ pyenv versions # インストール済みのバージョン一覧表示
$ pyenv use xxxxxx # 指定したバージョンを使用
$ pyenv version # 現在のバージョンを確認
miniconda/anacondaをインストールした場合は、condaで補完が効くかどうか確認
$ conda update conda # 一応念のため
```
3. pipのインストール
* Python 3.4以降のバージョンにはデフォルトでインストールされています。インストール済みのため割愛
* 2系をダウンロードしてきた方は、こちらから
-
仮想環境の構築
- conda create -n <環境名> <スペース区切りでライブラリ名>
- pyenv-virtualenvでも仮想環境構築は行えるがオススメしない。pythonのバージョン間の違いまで吸収できるのはcondaで作る仮想環境
$ pyenv global miniconda3.XXX # インストール済みのバージョンの中で、defaultで呼ぶものを定義
$ conda create -n test pandas # 仮想環境構築
$ pyenv versions # インストール済みのバージョン一覧表示
$ pyenv local miniconda3.XXX/test # もし、このディレクトリ下のみの仮想環境として利用したいなら
$ pyenv global miniconda3.XXX/test # もし、作成した仮想環境をdefaultで利用したいなら
```
上記の一連の作業で共通の環境構築部分は終了です。
後は必要なパッケージを適宜ダウンロードし、環境が汚染されたら適宜新たな仮想環境を構築し、切り替えるだけで良いです。
導入してきたやつらの役割
pyenvに関して
pythonのバージョン管理ツール。
pythonの2系/3系やanaconda/minicondaの好きなバージョンを取得し、
切り替えることが可能。
使用方法はこちら
pipに関して
pythonのスタンダードなのパッケージ管理ツール。
pipよりcondaを用いたパッケージインストールのほうが便利なため、
初心者はcondaに入っていないパッケージをpipでインストール程度の認識をもっていればよいかも。
pipがcondaよりも面倒なわけは、pipはクライアント側でコンパイルするので環境によって怒られることがある点。
condaに関して
pythonの「パッケージ管理、バージョン管理、仮想環境管理」ができる万能ツール。
anaconda/minicondaを導入すると、もれなくついてくるw
普段はインストール方法に記載したように仮想環境構築に使用したり、パッケージのインストールに使用することが多い。
バージョン管理もcondaで行えるが、私はインストール時同様にpyenvで新しいバージョンをダウンロードして、切り替えを行っています。