はじめに
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 ~/.basrhc # 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
で差分を見てみると、いろいろ新しく追加されている。
(hoge)$ git status
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
おしまい
これ使っていていいのは、色々と試しても環境ごと削除すれば綺麗さっぱりできる。ドジな自分にはもってこいな環境なのである (;^_^