CentOS7 pyenvを利用したpython環境構築
CentOS6系と大差ないけど。
[amazonjs asin="4774173207″ locale="JP" title="Pythonエンジニア養成読本[いまどきの開発ノウハウ満載!] (Software Design plus)"]
前提
CentOS7がインストールしたて。
CentOS7 アップデートと開発ツールをインストール
アップデートと最低限必要と思われる開発ツールをインストール。
[shell]
# yum update -y
………….
# sudo yum groupinstall "Development Tools"
………….
# yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel
[/shell]
pyenvとpyenv-virtualenv をインストール
pyenvと、使うかわからないけどとりあえずpyenv-virtualenvをインストール。
まずgithubからpyenvをcloneしてくる。
[shell]
# cd /usr/local
# sudo git clone git://github.com/yyuu/pyenv.git ./pyenv
# sudo git clone git://github.com/yyuu/pyenv-virtualenv.git ./.pyenv/plugins/pyenv-virtualenv
[/shell]
次に /etc/profile.d にpyenvの環境変数を定義しておく。
[shell]
# vi /etc/profile.d/pyenv.sh
[/shell]
[shell title="pyenv.shの内容"]
export PYENV_ROOT="/usr/local/pyenv"
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init -)"
[/shell]
シェルを再度起動し直し、環境変数を読み込む
[shell]
exec $SHELL -l
[/shell]
pyenvからpythonをインストール
pyenvでインストールできるpythonのバージョンを確認。
[shell title="pythonのバージョンのリスト"]
# pyenv install –list
Available versions:
2.1.3
………….
2.7.9
2.7.10
………….
3.4.1
3.4.2
3.4.3
………….
stackless-3.4.1
[/shell]
今回は特にバージョンにこだわりが無いため、3.4.3をインストール。
「pyenv versions」で確認できる。
[shell title="3.4.3をインストール"]
pyenv install 3.4.3
pyenv versions
system
* 3.4.3 (set by /home/centos/.python-version)
[/shell]
利用するpythonのバージョンの指定方法は、自分だけを指定する「local」とシステムユーザー全体を指定する「global」の2種類ある。「local」に関しては、一般ユーザーが自分で指定することができる。
[shell title="pythonバージョンの指定方法"]
# pyenv local 3.4.3
# pyenv global 3.4.3
[/shell]
一応pyenv-virtualenv の使い方
一般ユーザーでpyenv環境を作った時であればpyenv-virtualenvでも仮想環境を気軽に作りやすい。
ただ管理者がpyenvを構築した場合は、管理者権限がないとpyenv-virtualenvで仮想環境を構築できないというデメリットがある。
それを踏まえてpyenv-virtualenv の使い方を簡単に紹介。
まず仮想環境の作り方。
「superproject」という仮想環境を構築する。
「pyenv versions」で仮想環境が構築されたかを確認できる。
[shell title="仮想環境の作り方"]
# pyenv virtualenv 3.4.3 superproject
Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use –upgrade to upgrade): setuptools in /usr/local/pyenv/versions/superproject/lib/python3.4/site-packages
Requirement already satisfied (use –upgrade to upgrade): pip in /usr/local/pyenv/versions/superproject/lib/python3.4/site-packages
# pyenv versions
* system (set by /usr/local/pyenv/version)
3.4.3
superproject
[/shell]
利用方法は pyenvでバージョンをしていするのと同じように指定できる。
[shell]
pyenv local superproject
[/shell]
仮想環境を壊したい場合には、uninstallオプションを利用する。
[shell title="仮想環境の削除"]
# pyenv uninstall superproject
pyenv: remove /usr/local/pyenv/versions/superproject? y
# pyenv versions
system
* 3.4.3 (set by /usr/local/pyenv/version)
[/shell]
一般ユーザーでの利用方法
一般ユーザーでの利用方法は上で紹介したのと同様に「local」でバージョン指定が行える。
一度指定すると、最ログインした際もバージョン指定が有効になっている。
[shell title="一般ユーザーでの利用方法"]
$ pyenv local 3.4.3
$ python –version
Python 3.4.3
[/shell]
ちなみに python3.3以降では「virtualenv」ではなく「venv」が標準モジュールとなっているため、「venv」を利用することができる。virtualenvと同様に、deactiveで仮想環境から脱出できる。
[shell title="venvの利用方法"]
$ pyvenv project
$ ls
project
$ source project/bin/activate
(project) $ python –version
Python 3.4.3
(project) $ deactivate
$
[/shell]
今後、NginxとPythonの組み合わせを紹介予定。
ディスカッション
ピンバック & トラックバック一覧
[…] [1] CentOS7 pyenvを利用したpython環境構築 – from umentu import stupid [2] Setting up Django and your web server with uWSGI and nginx – uWSGI 2.0 documentation [3] ちゃんと運用するときのuWSGI設定メモ – Qiita […]