LinuxMint(Ubuntu) pyenvを使ったPython環境の構築

2015年9月22日

何度も構築しているため、統一するためにまとめる。

[amazonjs asin="B00XZTYMG6″ locale="JP" title="Pythonプロフェッショナルプログラミング 第2版"]

rootになっておく

大半の作業がrootのため、rootに昇格しておく。

[shell]
$ sudo -s
[/shell]

 

必要なパッケージをインストール

[shell]
# apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
[/shell]

 

Gitからpyenvのダウンロード

/opt配下にpyenvを設置する。

[shell]
# cd /opt
# git clone git://github.com/yyuu/pyenv.git ./pyenv
# mkdir pyenv/{versions,shims}
[/shell]

 

pyenvの設定

pyenvのパスを認識させるために、profile.dにpyenv.shを設置する。

LinuxMintの場合
/etc/bash.bashrcに以下を追記。

[shell]
$ sudo vi /etc/bash.bashrc
[/shell]

[shell]
export PYENV_ROOT="/opt/pyenv"
export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"
[/shell]

[shell]
# source /etc/bash.bashrc
[/shell]

Ubuntuの場合
[shell]
# echo 'export PYENV_ROOT="/opt/pyenv"’ | sudo tee -a /etc/profile.d/pyenv.sh
# echo 'export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"’ | sudo tee -a /etc/profile.d/pyenv.sh
# source /etc/profile.d/pyenv.sh
[/shell]

正常にパスが認識されているか確認する。

[shell]
# pyenv –version
[/shell]

パスをsudoのときも引き継ぐために、visudoに記述する。
[shell]
# visudo
[/shell]

[shell title="visudoの内容"]
# コメントアウト
#Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# 追記
Defaults env_keep += "PATH"
Defaults env_keep += "PYENV_ROOT"
[/shell]

pyenvでインストールできるpythonのバージョンを確認する。

[shell]
# pyenv install –list
Available versions:
2.1.3
2.2.3
2.3.7
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
2.5.6
2.6.6
2.6.7
2.6.8
2.6.9
2.7-dev
2.7
2.7.1
2.7.2
2.7.3
2.7.4
2.7.5
2.7.6
2.7.7
2.7.8
2.7.9
2.7.10
3.0.1
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.2-dev
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.3.0
3.3-dev
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.4.0
3.4-dev
3.4.1
3.4.2
3.4.3
3.5.0b1
3.5.0b2
3.5.0b3
3.5-dev
3.6-dev
anaconda-1.4.0
anaconda-1.5.0
anaconda-1.5.1
anaconda-1.6.0
anaconda-1.6.1
anaconda-1.7.0
anaconda-1.8.0
anaconda-1.9.0
anaconda-1.9.1
anaconda-1.9.2
anaconda-2.0.0
anaconda-2.0.1
anaconda-2.1.0
anaconda-2.2.0
anaconda-2.3.0
anaconda3-2.0.0
anaconda3-2.0.1
anaconda3-2.1.0
anaconda3-2.2.0
anaconda3-2.3.0
ironpython-dev
ironpython-2.7.4
ironpython-2.7.5
jython-dev
jython-2.5.0
jython-2.5-dev
jython-2.5.1
jython-2.5.2
jython-2.5.3
jython-2.5.4-rc1
jython-2.7.0
miniconda-2.2.2
miniconda-3.0.0
miniconda-3.0.4
miniconda-3.0.5
miniconda-3.3.0
miniconda-3.4.2
miniconda-3.7.0
miniconda-3.8.3
miniconda-3.9.1
miniconda-3.10.1
miniconda3-2.2.2
miniconda3-3.0.0
miniconda3-3.0.4
miniconda3-3.0.5
miniconda3-3.3.0
miniconda3-3.4.2
miniconda3-3.7.0
miniconda3-3.8.3
miniconda3-3.9.1
miniconda3-3.10.1
pypy-c-jit-latest
pypy-c-nojit-latest
pypy-dev
pypy-portable-2.3.1
pypy-portable-2.4
pypy-portable-2.5
pypy-portable-2.5.1
pypy-portable-2.6.0
pypy-1.5-src
pypy-1.5
pypy-1.6
pypy-1.7-dev
pypy-1.7
pypy-1.8-dev
pypy-1.8
pypy-1.9-dev
pypy-1.9
pypy-2.0-dev
pypy-2.0-src
pypy-2.0
pypy-2.0.1-src
pypy-2.0.1
pypy-2.0.2-src
pypy-2.0.2
pypy-2.1-src
pypy-2.1
pypy-2.2-src
pypy-2.2
pypy-2.2.1-src
pypy-2.2.1
pypy-2.3-src
pypy-2.3
pypy-2.3.1-src
pypy-2.3.1
pypy-2.4.0-src
pypy-2.4.0
pypy-2.4-beta1-src
pypy-2.4-beta1
pypy-2.5.0-src
pypy-2.5.0
pypy-2.5.1-src
pypy-2.5.1
pypy-2.6.0-src
pypy-2.6.0
pypy3-dev
pypy3-portable-2.3.1
pypy3-portable-2.4
pypy3-2.3.1-src
pypy3-2.3.1
pypy3-2.4.0-src
pypy3-2.4.0
stackless-dev
stackless-2.7-dev
stackless-2.7.2
stackless-2.7.3
stackless-2.7.4
stackless-2.7.5
stackless-2.7.6
stackless-2.7.7
stackless-2.7.8
stackless-3.2-dev
stackless-3.2.2
stackless-3.2.5
stackless-3.3-dev
stackless-3.3.5
stackless-3.4.1
[/shell]

バージョン3.4.3をインストールする。

[shell]
pyenv install -v 3.4.3
[/shell]

一般ユーザーのデフォルトのPythonのバージョンを指定する。

[shell]
pyenv global 3.4.3
[/shell]

ターミナルを開きなおして、一般ユーザーでpythonを実行すると3系になるかと思いきやまだ2系。
profile.dに書いているからパスが読み込まれるはずが読み込まれなかったため、
~/.bashrcに記述した。

[shell]
$ echo 'export PYENV_ROOT="/opt/pyenv"’ | sudo tee -a ~/.bashrc
$ echo 'export PATH="${PYENV_ROOT}/shims:${PYENV_ROOT}/bin:${PATH}"’ | sudo tee -a ~/.bashrc
$ source ~/.bashrc
[/shell]

再度ターミナルを開き直してバージョンを確認。
[shell]
python –version
Python 3.4.3
[/shell]

python3系のため、pyvenvは何もせずとも使える。

[shell]
$ pyvenv test_venv
$ ls test_venv/
bin include lib lib64 pyvenv.cfg
[/shell]