CentOS7 pyenvを利用したpython環境構築

Facebook にシェア
Pocket
LINEで送る
このエントリーを Google ブックマーク に追加

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の組み合わせを紹介予定。

Related posts

One Thought to “CentOS7 pyenvを利用したpython環境構築”

  1. […] [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 […]

コメントを残す