しゃちの備忘録

プログラミングを中心とした技術関連の備忘録です(今のところ)

virtualenvの使い方

備忘録. 新規性は全く無いけど,今後も使う可能性が高いので書いておきます.

Python仮装環境をまるっと作ることができるvirtualenvの準備から使い方までまとめておきます. よく一緒に話に上がることが多いpyenvとpyenv-virtualenvについても,名前と違いだけ触れておきます.

virtualenv

virtualenvとは/インストール

Pythonでの仮想環境を作成,管理できるパッケージです. パッケージなのでインストールではpipを用います(詳細は後述) これを用いる一つのメリットとして,同一バージョンだけど異なる環境を複数作成することができます

python3系の場合は以下のコマンドからインストールできます.

$ pip3 install virtualenv

pip3 listをして,virtualenv (xx.xx.xx)と追加されてれば完了です.

使ってみる

実際に使ってみます.今回はenv_test01という名前の環境を作ります.

$ virtualenv env_test01

これだけです.するとenv_test01というディレクトリができていると思います.この中にPythonの環境がまるっと入っている形になります.(いらなくなれば全部削除すればいいわけです) 上でも述べたように,virtualenvのメリットとして同一バージョン間の異なる環境構築が手軽にできるという点があります. 名前を変更してやればそのぶんだけ環境が作れるわけです.

オプションを指定しなければvirtualenvをインストールした環境と同じ環境が構築されます. 指定する場合は

$ virtualenv env_test02 -p python2.7

というふうにすると,異なるバージョンの環境を構築できます.

では作った環境を使って見ましょう. ディレクトリを移動して,bin/activateを対象に以下のコマンドを入力します.

$ cd env_test01
$ cd bin
$ source activate 

一行でsource env_test01/bin/activateでもいいとおもいます. すると先ほど作ったまっさらな環境に入ることができました. あとは好きにするだけです.

最後に入った環境の閉じ方だけ紹介して, 使い方解説は終了です,お疲れ様でした.

$ deactivate 

参考に私の環境での実行での様子を載せておきます. f:id:teru0rc4:20170627162950p:plain

似ているのの紹介

上で名前だけあげたpyenvとpyenv-virtualenvについて,名前と違いだけ触れておきます(個人的な備忘録)

pyenv

virtualenvと同じくPythonでの仮想環境を作成,管理できるパッケージです. 歴史的にはvirtualenvのが古いらしいです. バージョンが異なる環境を作れますが,モジュールを管理しているディレクトリが共通なので, 同一バージョン間で異なる環境がこれ単体ではできません. それを解決するのがpyenv-virtualenvのようです.

pyenv-virtualenv

pyenv-virtualenvはpyenvのプラグインになります. virtualenvとは無関係です(私も事前調査で混乱しました.混同して説明されているケースもあるので注意). これを使うことで,モジュールを別々のディレクトリで管理できるようになり,同一バージョン間で異なる環境が立てられるようになるようです.

終わりに

必要になって書いたのがひと月以上前なのですが,最後の使ってみる部分の記述をずっとしてなくて, ふと思い立って一気に書き上げました.

やりたいことを成すための調査→事前知識まとめ/方法決定→実行→ブログに起こす,までのステップで最後の部分をしっかりやりきることが少なく, これからはちゃんと最後までやりきりたいなーと感じたので, とりあえずここからやっていきます.