221
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

virtualenvでpython環境を管理する

はじめに

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

おしまい

これ使っていていいのは、色々と試しても環境ごと削除すれば綺麗さっぱりできる。ドジな自分にはもってこいな環境なのである (;^_^

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
221
Help us understand the problem. What are the problem?