Contents
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のバージョン一覧を客員します。
以下のコマンドで任意のバージョンのインストールが可能となります。
試しに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
最後のコマンドで、現在インストールされているバージョンが一覧で表示されたかと思います。
アスタリスクが付いている「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は特定のバージョンの環境をコピーし、クリアな環境を作成することが可能です。
バージョン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 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による仮想環境作成