ラベル python の投稿を表示しています。 すべての投稿を表示
ラベル python の投稿を表示しています。 すべての投稿を表示

2013年1月5日土曜日

今さらながらvirtualenv Windows8編

久々にWindows環境を整備することになり、手元にはWindos8マシンが用意できた。

すっかりvirtualenvを使わないと気持ち悪い体質になってしまったので、Windowsでのセットアップ手順や注意事項をメモしておく。

前提
  • どうやらコマンドプロンプトはもう時代遅れっぽいのでPowerShellにする。
  • C:\Python27\Lib\site-packagesにはvirtualenv.pyしかインストールしない!
    • setuptoolsとかpipはvirtualenv環境にのみ存在する状態にしておけば、環境切り替え忘れてpip install djangoとかしてもエラーになるだけなので環境が汚れない。
  • パッケージ管理はpipを使う。
    • virtualenv環境のパッケージ管理はpipに統一しておく。pip freezeでパッケージのリストを作っておけば、環境の再構築もとても簡単安全に行える。


pypiからtar.gzの最新パッケージをダウンロードして解凍する。

setup.pyでインストールする。

C:\Users\ryo\Downloads\virtualenv-1.8.4> C:\Python27\python.exe setup.py install

Note: without Setuptools installed you will have to use "python -m virtualenv ENV"
running install
running build
running build_py
creating build
creating build\lib
copying virtualenv.py -> build\lib
creating build\lib\virtualenv_support
copying virtualenv_support\__init__.py -> build\lib\virtualenv_support
copying virtualenv_support\setuptools-0.6c11-py2.7.egg -> build\lib\virtualenv_support
copying virtualenv_support\distribute-0.6.31.tar.gz -> build\lib\virtualenv_suppor
copying virtualenv_support\pip-1.2.1.tar.gz -> build\lib\virtualenv_support
running install_lib
copying build\lib\virtualenv.py -> C:\Python27\Lib\site-packages
creating C:\Python27\Lib\site-packages\virtualenv_support
copying build\lib\virtualenv_support\distribute-0.6.31.tar.gz -> C:\Python27\Lib\site-packages\virtualenv_support
copying build\lib\virtualenv_support\pip-1.2.1.tar.gz -> C:\Python27\Lib\site-packages\virtualenv_support
copying build\lib\virtualenv_support\setuptools-0.6c11-py2.7.egg -> C:\Python27\Lib\site-packages\virtualenv_support
copying build\lib\virtualenv_support\__init__.py -> C:\Python27\Lib\site-packages\virtualenv_support
byte-compiling C:\Python27\Lib\site-packages\virtualenv.py to virtualenv.pyc
byte-compiling C:\Python27\Lib\site-packages\virtualenv_support\__init__.py to __init__.pyc
running install_egg_info
Writing C:\Python27\Lib\site-packages\virtualenv-1.8.4-py2.7.egg-info

これでインストールは完了。簡単。 環境の作り方
C:\Users\ryo> python -m virtualenv --distribute venv
New python executable in venv\Scripts\python.exe
Installing distribute.............................................................................................................................................................................................................................done.
Installing pip..................done.
venv\Scripts\activte.ps1をpowershell上で実行するとプロンプトに環境名が表示される。これで準備完了。
C:\Users\ryo> .\venv\Scripts\activate.ps1
(venv) C:\Users\ryo>
これでC:\Python27\Libを見ずにvenv\Libを見るようになったのでパッケージインストールする。
(venv) C:\Users\ryo> pip install unittest2
(venv) C:\Users\ryo> pip freeze
distribute==0.6.31
unittest2==0.5.1

以上。

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の下のパスが並ぶ)
    >>> 
    
    

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