virtualenvをインストールしようと思ったらpyenv-virtualenvになった
間が空いてしました。
色々と忙しくて...(言い訳です。)
↓前回、pyenvをインストールした話の続きです。
virtualenvをインストールしようと思ったらpyenv-virtualenvというプラグインがあるようなので、大人しくそれをインストールします。(正直、違いがよくわかっていません。)
分かっている事はpyenv-virtualenvを使用する事でpyenvでインストールした各バージョンのプラグインを分けて使用できるようになるようです。
例えば、バージョン3.6.1にパッケージのipythonが入っている仮想環境、入っていない仮想環境という具合に別々の環境が作れる。
インストールはGitHubに公開されているpyenv-virtualenvにあるreadmeの手順に沿って行うだけです。
手順
pyenv-virtualenvの準備
>git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
cloneできたか確認する。(pyenv-virtualenvがあればOK)
>ls -l ~.pyenv/plugins/
ログイン時にvirtualenvが有効になるように設定ファイルに追記
>echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
設定ファイルの読み直し
※個人的には"souce ~/.bash_profile"をオススメします。(何故かpyenv shellが認識されなかったので)
>exec "$SHELL"
作成する仮想環境に必要なpythonのバージョンをインストール
今回は2.7系を予めインストールしておく(3系でも手順は同じです)
>pyenv install 2.7.13
↓警告が出るけどインストールできた。
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
仮想環境の作成
バージョンが2.7.13のmy-virtual-env-2.7.13という仮想環境を作成する。
コマンド実行後に"ls -l ~/.pyenv/versions/"を実行すると分かり易いです。
インストール済みの各バージョン以下のenvsディクトリ以下に作成されます。
それを各バージョンと同じ階層にシンボリックリンクを貼ってます。
>pyenv virtualenv 2.7.13 my-virtual-env-2.7.13
検証用にenv2.7.13という仮想環境も作成する。
>pyenv virtualenv 2.7.13 env2.7.13
仮想環境の構築 (その1)
作成された仮想環境(my-virtual-env-2.7.13)を構築するためアクティブ状態にします。
※これを実行するとbashプロンプトにアクティブ状態の仮想環境名が表示されます。
>pyenv activate my-virtual-env-2.7.13
試しに作成した仮想環境(my-virual-env-2.7.13)にipythonをインストール
>pip install ipython
インストールされた事を確認
>pip show ipython
仮想環境の構築 (その2)
このままenv-2.7.13に切り替えてipythonがインストールされているか確認してみます。
>pyenv activate env2.7.13
ipythonがインストールされているか確認
>pip show ipython
※表示されないはず
まとめ
流れとやる事を下記にまとめます。
予め作成する仮想環境に対応したpythonのバージョンをインストール
>pyenv install {バージョン}
仮想環境の作成(必要な分)
>pyenv virtualenv {pythonのバーション} {仮想環境名}
作業ディレクトリを作成
>mkdir ~/{作業ディレクトリ名}
作業ディレクトリに移動して仮想環境を指定
>cd ~/{作業ディレクトリ名}
>pyenv activate {仮想環境名}
仮想環境に合わせてプラグインをインストール
作成した仮想環境ごとに使用するプラグインをインストールする。
※心配なら仮想環境以下を覗いて確認
python2系
>pip install {パッケージ名}
python3系
>pip3 install {パッケージ名}
仮想環境別のパッケージインストールの確認する場所
~/.pyenv/versions/{仮想環境名}/lib/{pythonバージョン}/site-packages/
仮想環境から抜ける
作業が終り仮想環境から抜けたいとき
>pyenv deactivate
以上、virtualenvあらためpyenv-virtualenvでした!
次回予告
php-envをやろうかと思ったのですが、Ruby on Railsを掘り下げてみたいと思います。
最後まで読んでいただきありがとうございます!