python virtualenv
pythonにはvirtualenv
という仮想環境が簡単に作れるモジュールがある。お試しに何かモジュールをインストールしたい場合、virutalenv
で環境を作ってそちらにインストールして試せば、システム環境は無傷で使える。いくつも環境が作れるのでpythonのバージョンで分けたりと色々と便利なのだ。
気に入らなければその環境を消すか使わなければいいだけ。
virtualenv
とそれを簡単に管理できるvirtualenvwrapper
をセットで導入するのが便利なのでそちらをメモ。
- ubuntu14.04
- Mac OSX Yosemite(10.10.3)
install and setup
ubuntu
# pipがなければインストール $ sudo apt-get install python-pip # pythonを使うなら依存関係でエラーが出るかもしれないのでこちらもインストール $ sudo apt-get install python2.7-dev # virtualenv / virtualenvwrapperのインストール $ sudo pip install virtualenv $ sudo pip install virtualenvwrapper
mac
Macはpip
は最初から使えるはず。
# virtualenv / virtualenvwrapperのインストール $ sudo pip install virtualenv $ sudo pip install virtualenvwrapper
setup
virtualenvwrapper
を使うには以下のスクリプトをbashrc
に追加する必要がある。
$ vim ~/.basrh # macは`~/.bash_profile` source /usr/local/bin/virtualenvwrapper.sh export WORKON_HOME=~/.virtualenvs
使ってみる
作成
オプションは色々とあるが、システムのまっさらな状態で使ってみたいので、基本的に自分は--nosite-package
のみつける。
# mkvirtualenv <option> <環境名> $ mkvirtualenv --no-site-package hoge # --never-download : ネットワークからDLをしない # --system-site-packages : インストール済みモジュールを使用する # --no-site-packages : インストール済みモジュールを全て外した状態で仮想環境が作成される # 作成されるとコマンドプロンプトに一番左に環境名が追加される (hoge)$
作成した環境ディレクトリを確認
- 環境ディレクトリに移動
(hoge)$ cdvirtualenv # ディレクトリを調べてみる (hoge)$ pwd /home/hoge/.virtualenvs/hoge # 中身はこんな感じ (hoge)$ ls bin include lib local
モジュールをインストールしてみる
git
でバックアップをとって他のモジュールをインストールしてみる
# 環境全体をローカルgitにコミットしておく (hoge)$ git init; git add -A; git commit -a -m "init" # 何かと便利な`Twisted`モジュールをインストールしてみる (hoge)$ pip install twisted
git
で差分を見てみると、いろいろ新しく追加されている。
On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # bin/cftp # bin/ckeygen # bin/conch # bin/lore # bin/mailmail # bin/manhole # bin/pyhtmlizer # bin/tap2deb # bin/tap2rpm # bin/tapconvert # bin/tkconch # bin/trial # bin/twistd # lib/python2.7/site-packages/Twisted-15.1.0-py2.7.egg-info/ # lib/python2.7/site-packages/twisted/ # lib/python2.7/site-packages/zope.interface-4.1.2-py2.7-nspkg.pth # lib/python2.7/site-packages/zope.interface-4.1.2-py2.7.egg-info/ # lib/python2.7/site-packages/zope/ # pip-selfcheck.json #
- 早速インストールしたモジュールを使ってみる
# importできる (hoge)$ python -c "import twisted"
- 環境を離れて使ってみる
# 環境の停止 (hoge)$ deactivate # 元のシステムで使ってみるとエラーが出る $ python -c "import twisted" Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named twisted
これにより、システム環境にはインストールされていないことがわかる。
よく使うコマンド一覧
deactivate
: 環境の停止
# 環境の停止 (hoge)$ deactivate $
workon
: 環境に移行する
すでに環境があるならばworkon
コマンドでその環境に移行することができる
$ workon hoge (hoge) $
lssitepackages
: インストールしたパッケージ一覧
(hoge)$ lssitepackages Twisted-15.1.0-py2.7.egg-info pip-6.1.1.dist-info zope _markerlib pkg_resources zope.interface-4.1.2-py2.7-nspkg.pth easy_install.py setuptools zope.interface-4.1.2-py2.7.egg-info easy_install.pyc setuptools-15.0.dist-info pip twisted
rmvirtualenv
: 環境を消す
フォルダをまるごと消しても事は済むのだが、もちろん環境を削除するコマンドもある。
$ rmvirtualenv hoge
おしまい
これ使っていていいのは、色々と試しても環境ごと削除すれば綺麗さっぱりできる。ドジな自分にはもってこいな環境なのである (;^_^