CentOS6でpython3を利用する方法
CentOS6は、yumがpython2で動くので、システムにpython3を入れると、既存環境に影響を与える可能性がある。ので、仮想環境を構築することで実現する。
python3環境構築
・pyenv pythonの複数バージョンをインストールして切り替えることが可能
・virtualenv 隔離されたpython仮想環境を提供
■依存パッケージのインストール
調べてみると事前にインストールが必要なものがある。という説明が多かったが、既にインストール済みのものばかりだったので、エラーが出た時は、依存パッケージが必要ということを忘れないために残しておく。
$ yum install gcc gcc-c++ make git openssl-devel bzip2-devel zlib-devel readline-devel sqlite-devel bzip2 sqlite zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel
□SQLiteとreadlineはいってないと、インストール時に怒られる
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
■pyenvのインストール *個人的に使いたかったので ~/ 配下にインストール
$ git clone http://github.com/yyuu/pyenv.git ~/.pyenv
$ vi ~/.bashrc
-----------------------------------------------------
全ユーザで共有するときは、下記にインストールする。
$ git clone git://github.com/yyuu/pyenv.git /usr/local/pyenv
$ cd /usr/local/pyenv
$ mkdir {versions,shims}
-----------------------------------------------------
■ログイン時に設定,initを実行するように設定しておく
------------------------
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
------------------------
$ source ~/.bashrc
$ cd plugins/
$ git clone git://github.com/yyuu/pyenv-virtualenv.git *パッケージの仮想環境を構築するプラグイン
$ git clone git://github.com/yyuu/pyenv-update.git *Pyenv自体をアップデートするプラグイン
■virtualenv install , ディレクトリに仮想環境作成
$ cd ~/.pyenv/plugins
$ git clone http://github.com/yyuu/pyenv-virtualenv.git
□install可能なPythonをリスト表示
$ pyenv install --list
□新しいバージョンが見つからない時はPyenvをアップデートする
$ sudo pyenv update
□virtualenv installインストール
$ cd ~/.pyenv/plugins
$ git clone http://github.com/yyuu/pyenv-virtualenv.git
□versionを指定してインストール、環境作成
*CentOS6.10では最新のpythonはインストール出来なかった。
$ pyenv install 3.6.13
$ pyenv virtualenv 3.6.13 rr_virtualenv
□installされているバージョン、現環境を表示する。
$ pyenv versions
* system (set by /home/tagutagu/.pyenv/version)
3.6.13
3.6.13/envs/rr_virtualenv
rr_virtualenv
□インストールしたバージョンを指定して環境をカレントディレクトリに適用
$ pyenv local rr_virtualenv
□適用されているかチェック
$ pyenv versions
system (set by /home1/tagutagu/.pyenv/version)
3.0.1
* 3.6.13/envs/rr_virtualenv
rr_virtualenv
$ python --version