pyenv/pyenv-virtualenvで環境を構築する(Linux環境下で)
Pythonを使う為の環境の整備。
開発用に、ディストリビューションの標準のPythonではなくする方法、かつ
ちなみに、ディストリビューションはFedora。今の所23(もうじき24)。
pyenvをインストールする。
GitHub - yyuu/pyenv: Simple Python version management
今回は/usr/local/の配下にpyenvを追加する。半ば趣味であるが、まあ、homeの下にフォルダがわさわさ増えてくのが何となく嫌いなだけだったりする。/usr/localの下におくと、いちいちsudo使う事になるが、まあそこら辺はどうでもいいので。
通常はpyenv-installerを用いればよい。
pyenvの/usr/local/の配下に入れる手順。
sudo git clone https://github.com/yyuu/pyenv.git /usr/local/pyenv
これで、/usr/localの配下のpyenvディレクトリとして作成される。
環境変数の設定
PYENV_ROOTに、/usr/local/pyenvを設定する。
PATHに$PYENV_ROOT/binを設定する。
個人の場合などでは、.bash_profileとかに仕込むようだが、今回は/etc/profile.d/配下に、pyenv.shを作成してみる。
#! /usr/bin/bash # # function pathmunge pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } # Environment Variables for pyenv export PYENV_ROOT=/usr/local/pyenv pathmunge $PYENV_ROOT/bin unset -f pathmunge
pathmunge関数によって二重登録を避けている。あんまり気にする事はない。
pyenv initの実行
以下の一行を追加する。
eval "$(pyenv init -)"
pyenv initの実行に必要なディレクトリの作成
この状態でターミナルを起動すると以下のように表示される。
mkdir: ディレクトリ `/usr/local/pyenv/shims' を作成できません: 許可がありません mkdir: ディレクトリ `/usr/local/pyenv/versions' を作成できません: 許可がありません
sudoで2つのフォルダを作成する。
pyenv-virtualenvプラグインをインストールする。
GitHub - yyuu/pyenv-virtualenv: a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)
sudo git clone https://github.com/yyuu/pyenv-virtualenv.git /usr/local/pyenv/plugins/pyenv-virtualenv
pyenvの環境構築で、幾つかはsudoで実行する為に環境変数の設定をしておく。
visudoで以下編集した。
Defaults env_keep += "PATH" Defaults env_keep += "PYENV_ROOT"
pyenv使って環境を作る。
pyenvは複数バージョンをインストール出来る。
pyenv-virtualenvは、そのバージョンの切り分けと似たような「仮想のバージョン」を作るようなイメージ。
pyenvでインストール可能なバージョンを確認する。
pyenv install -l
「-l」は「--list」でも可。
pyenvで特定バージョンをインストールする。
上記で表示された形式でインストールする(二重引用符で囲ってもいいが・・・・・・)
sudo pyenv install "3.5.1"
pyenvで特定バージョンをアンインストールする。
sudo pyenv uninstall "3.5.0"
remove前に確認があるが「sudo pyenv uninstall -f "3.5.0"」で問い合わせなしで削除可能。
pyenvでインストールされたバージョンを確認する。
pyenv versions
virtualenvは、一種のバージョンのように機能するのに注意。
virtualenvを作る。
sudo pyenv virtualenv 3.5.1 py351env
virtualenvを削除する。
バージョン削除と同様に実施する。
sudo pyenv uninstall py351env
利用するバージョンを設定する(全体)
sudo pyenv global py351env
利用するバージョンを設定する(特定ディレクトリ配下)
特定ディレクトリの下で。
pyenv local py351env