Python3のインストール(Linux、Mac)

Pythonを実行する環境を整える

まず、Pythonを実行する環境を作成しましょう。環境構築方法は色々あるのですが、LinuxやMacなどのUnixOSを利用している場合は、複数バージョンを簡単に切り替えられるPyenvを利用することをおすすめします。
ただし、PyenvはWindowsには対応していないため、Windowsの場合はPyenvを利用しない方法を参考にしてください。
→Windows版

pyenv、virtualenvとは?

ちょっと古いLinuxやMacには最初からPython2系がインストールされていますが、これは古いバージョンであるため新しいバージョンを利用したい場合は元からはいっているPythonとの共存を考慮する必要があります。

ですが、pyenvを利用すれば、既存のPythonの環境をいじることなく色んなバージョンのPythonを同居させることが可能です。

さらに、pyenvプラグインのvirtualenvを利用すると、同じバージョンで異なる環境を複数作ることができます。

つまり、複数のPythonアプリを動かすとき、それぞれのアプリで要求されるPythonのバージョンやライブラリの依存関係が異なっていても、それぞれに環境を準備することが可能になるのです。

細かい説明は以下の公式ページを参照してみてください。
https://github.com/yyuu/pyenv

事前準備

インストール前に、必要なモジュールをインストールしておきましょう。環境はCentOS6、7、Ubuntu16.04、MacOSで動作確認済みです。まずは必要なモジュールのインストールを行いましょう。Linuxではroot権限で作業を行ってください。

なお、MacOSではbrewから一発でインストール可能ですが、ここではその方法については記述しません。

CentOSの場合

# gitが入っていない場合は入れる
yum -y install git

# Pythonインストール時に必要となるモジュールをインストールする
yum -y install make gcc 
yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel

Ubuntuの場合

# gitが入っていない場合は入れる
sudo apt-get install  -y git

# Pythonインストール時に必要となるモジュールをインストールする
sudo apt-get install -y make gcc
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils

MacOSの場合

brew install readline xz

必要となるモジュールですが、詳細は以下を参照してください。
https://github.com/yyuu/pyenv/wiki/Common-build-problems

インストール

次に、pyenvをインストールしてみましょう。ここからはユーザーのhomeディレクトリ配下で作業を行うため、root権限は不要です。サーバー等で他のユーザーも利用する場合は、/opt等を利用すると良いと思います。

# pyenvをcloneする
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
# virtual envをcloneする
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

あとは、以下のように環境変数を設定するだけでインストールが完了です。

vim ~/.bashrc
# 以下を追記する。
export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

以下のコマンドで.bashrcを読み込みます。

source ~/.bashrc

インストールは以上で完了です。簡単ですね。

使い方 環境構築

バージョンを指定したインストール

では、早速使ってみましょう。まず、以下のコマンドインストール可能なPythonのバージョン一覧を客員します。

インストール可能なPythonのバージョン一覧
pyenv install -l

以下のコマンドで任意のバージョンのインストールが可能となります。

指定したバージョンのPythonをインストール
pyenv install <バージョン番号>

試しに2つのバージョンのPythonをインストールしてみましょう。pyenvコマンドで2種類のバージョンをインストールしてみます。

# インストール可能なバージョンを調べる
pyenv install -l
# pythonをインストールする
pyenv install 2.7.11
pyenv install 3.5.1
# pythonの環境を確認する
pyenv versions

* system (set by /home/pythonuser/.pyenv/version)
  2.7.11
  3.5.1

最後のコマンドで、現在インストールされているバージョンが一覧で表示されたかと思います。

インストール済のバージョン一覧
pyenv versions

アスタリスクが付いている「system」がネイティブの環境です。これでこのユーザーの環境では2.7.11と3.5.1の両方利用できるようになります。このままだと、ネイティブのPythonがデフォルトになるので、さっそくバージョンを切り替えてみましょう。

# バージョン3.5.1に切り替える
pyenv global 3.5.1

上記のコマンドで、バージョン3.5.1を利用することができます。一方、globalの代わりにlocalを指定すると、ディレクトリ単位で使用するPythonのバージョンを指定することが可能です。

それではためしてみましょう。ホームディレクトリ配下にwork2というディレクトリを作成し、そこだけ2.7.11を利用するようにします。

mkdir ~/work2
pyenv local 2.7.11

同じバージョンの環境をコピーする

次にvirtualenvの利用方法です。virtualenvは特定のバージョンの環境をコピーし、クリアな環境を作成することが可能です。

virtualenvで環境作成
pyenv virtualenv [元となるバージョン] <新たに作る環境名>

バージョン3.5.1から、「work_3.5.1」という環境を作成する場合、以下のようにコマンドを実行します。pyenv versionsでバージョンを確認してみると、増えていることが確認できます。また、元となるバージョンを省略すると、現在アクティブな環境を元に環境が作成されます。

pyenv virtualenv 3.5.1 work_3.5.1
pyenv versions

  system
* 2.7.11 (set by /home/pythonuser/.python-version)
  3.5.1
  3.5.1/envs/work_3.5.1
  work_3.5.1

案件ごとに環境を作成する、という使い方が多いですね。

環境削除

不要になった環境を削除する方法です。

仮想環境のアンインストール

pyenvとvirtualenvでインストールした環境は以下の書式で削除します。

環境削除
pyenv uninstall <バージョン名>

例えば、先ほど作成した環境を削除する場合は以下のように記述します。

pyenv uninstall work_3.5.1
pyenv uninstall 3.5.1

pyenv本体のアンインストール

pyenvの環境は自分で作成したディレクトリ配下に配置されているため、そこを削除するだけです。

rm -rf ~/.pyenv

この後、.bashrcに追記した以下を削除して.bashrcを再読み込みをすれば完了です。

export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
eval "$(pyenv init -)"

補足 venv

virtualenv以外に、Python3にはデフォルトでvenvという仮想環境の管理ツールが含まれています。使い方は以下を参考にしてください。
venvによる仮想環境作成