2012年3月25日日曜日

今さらながらvirtualenv

pythonbrewとかの方が流行なんじゃないかとは思いますが、今さらvirtualenv

Pythonの環境を切り替えるためのツールです。site-packagesのパスを切り替える感じ。それに対してpythonbrewの方は/usr/bin/pythonから丸ごと切り替える感じ。

同じpython2.7でも、使用するモジュールのバージョンを変えたいことがあると思います。

  • gaeはDjango1.2
  • herokuはDjango1.4

とか。今日はgae環境で作業、明日はheroku環境で作業、といったことがコマンド一つでできてします。それがvirtualenv。

自分としては仮想環境でOS丸ごと切り替えるのが流行だったのですが(雑でスイマセン)、herokuが推奨してたのでたまには使ってやろうかな、と。
herokuはrubyだけじゃなくてpythonもコミュニティの文化を良く理解してる感じがして、期待できそう。

そんな感じなvirtualenvのメモ。

 インストール方法 


  1. インストールはeasy_installで。これ以降easy_installは使わず、pipでインストールします。
  2. # easy_install virtualenv
    Searching for virtualenv
    Reading http://pypi.python.org/simple/virtualenv/
    Reading http://www.virtualenv.org
    Reading http://virtualenv.openplans.org
    Best match: virtualenv 1.7.1.2
    Downloading http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.7.1.2.tar.gz#md5=3be8a014c27340f48b56465f9109d9fa
    Processing virtualenv-1.7.1.2.tar.gz
    Running virtualenv-1.7.1.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7Nfz5N/virtualenv-1.7.1.2/egg-dist-tmp-GxwbmV
    warning: no previously-included files matching '*.*' found under directory 'docs/_templates'
    Adding virtualenv 1.7.1.2 to easy-install.pth file
    Installing virtualenv script to /usr/local/bin
    
    Installed /Library/Python/2.7/site-packages/virtualenv-1.7.1.2-py2.7.egg
    Processing dependencies for virtualenv
    Finished processing dependencies for virtualenv
    
  3. 特に書くことが無い・・・


 使い方


  • 環境を作る。venvという名前でディレクトリが作成される。
    % virtualenv  venv
    New python executable in venv/bin/python
    Installing setuptools............done.
    Installing pip...............done.
    % ls
    venv/ 
    
  • 環境を切り替える。プロンプトに環境名が表示される。
    % source venv/bin/activate
    (venv)% 
    
  • パッケージのインストールはpipで行う。uninstallもできるよ!
    (venv)% pip install Django psycopg2
    Downloading/unpacking Django
      Downloading Django-1.4.tar.gz (7.6Mb): 7.6Mb downloaded
      Running setup.py egg_info for package Django
        
    Downloading/unpacking psycopg2
      Downloading psycopg2-2.4.4.tar.gz (648Kb): 648Kb downloaded
      Running setup.py egg_info for package psycopg2
        
    
    (中略)
    
        
        no previously-included directories found matching 'doc/src/_build'
    Successfully installed Django psycopg2
    Cleaning up...
    
    
    venvディレクトリのsite-packagesを見ると、djangoとpsycopg2がインストールされている。Django1.4!!
    (venv)% ls venv/lib/python2.7/site-packages/
    Django-1.4-py2.7.egg-info/     
    django/ 
    psycopg2-2.4.4-py2.7.egg-info/
    pip-1.1-py2.7.egg/        
    psycopg2/
    easy-install.pth               
    setuptools.pth
    
  • 設定について。インタープリターでsys.pathを確認してみてください。
    (venv)% python
    Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
    [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import sys
    >>> sys.path
    (秘密。だけど、venvの下のパスが並ぶ)
    >>> 
    
    

こりゃ簡単便利。試してみたいモジュールがあったら一つ環境を作ってインストールするとよさそう。

0 件のコメント:

コメントを投稿