ぽよメモ

レガシーシステム考古学専攻

pyenvでpythonの管理

python3.xも随分と普及してきたのでそれを標準にしてもいい気はするのですが、解説サイトとかチュートリアルとかをやる上で2.x系も多いので両方手軽にやるためにpyenvを導入しました。 まず足りないライブラリがある可能性があるので、いくつか放り込みます。僕の環境ではlibbz2-dev、libreadline-dev、libsqlite3-devが足りませんでした。以下に参考にしたサイトに書いてあったライブラリ等を記しておきます。

sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

ホームディレクトリに.pyenvというフォルダを作成し、git cloneします。

mkdir ~/.pyenv
git clone git://github.com/yyuu/pyenv.git ~/.pyenv

.bashrcに以下を追記

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

追加したら

source ~/.bashrc

しておきます。 そして

pyenv install --list

とするとインストール可能なpythonのバージョンが表示されます。とりあえず2.7..10と3.4.3をインストールしておくこととします。

pyenv install 2.7.10
pyenv install 3.4.3

割と時間がかかります。また、足りないライブラリがあった場合ここでエラーが出ます。 デフォルトに設定するpythonのバージョンはglobalコマンドで設定できます。

pyenv global 2.7.10

これで2.7.10が標準で使われます。 また、特定のディレクトリにおいてバージョンを変更するときはlocalコマンドを使います。カレントディレクトリに.python-versionが作成されバージョンを決めるようです。

mkdir hoge #適当にディレクトリを作る
cd hoge
pyenv local 3.4.3
pyenv local --unset #localの設定を削除

localコマンドで宣言すると、globalが2.7.10になっていてもhogeディレクトリでは3.4.3が使われます。優先度がこちらのほうが高いのです。

pyenv versions

とすると今現在どのpythonインタプリタが標準になっているかがわかります。今回の場合ならsystem、2.7.10、3.4.3が表示され、2.7.10にアスタリスクが付いているはずです。 こんなことやってる前にさっさとガリガリ書けって話なんですが眠いので許して…(言い訳になっていない