页面

2011年12月30日星期五

virtualenv 使用笔记

virtualenv 是一个建立虚拟Python环境的工具(详见后面的参考)。使用起来很方便。以下是使用我这两天的使用笔记:
安装:(详细步骤可查阅后面的参考链接[1])
sudo apt-get install python-setuptools python-dev build-essential
sudo easy_install pip
sudo pip install virtualenv
第一步是为了安装easy_install, 然后通过easy_install 安装pip(一个类似easy_install的Python包安装工具,配合virtualenv使用效果好)。然后通过pip安装virtualenv
使用:
安装好后直接执行
virtualenv env_dir
source env_dir/bin/activate
就完成环境目录建立,并激活该环境了。最新的1.7版本默认是不使用系统原有的包(等于 --no-site-packages)。
激活环境后,安装的包都会限制在这个环境里(应该就是env_dir目录里),执行deactive 会离开这个环境。
比如安装Yolk (一个列出Python包信息的工具):
如果激活了环境的话,直接执行
pip install yolk
没激活可以用 pip 的 -E 安装包到指定环境
pip install -E env_dir yolk
执行  yolk -l  将可以列出环境下安装的所有包。
移除环境直接删除该目录应该就可以了。
Tips:
推荐安装virtualenvwrapper工具,可以快捷的建立环境和转换环境(还有其他功能),具体见参考[2]
sudo pip install virtualenvwrapper
指定pip的缓存目录,不用每次安装包都去下载:
.bashrc 里加上 PIP_DOWNLOAD_CACHE 环境变量,如
export PIP_DOWNLOAD_CACHE=~/.pip/download_cache

对于 sudo,cache 的 env 设置需要 sudo  visudo, 增加如下
Defaults        env_keep += "PIP_DOWNLOAD_CACHE"
可以 man sudoers 查看具体帮助。


问题:
  1. 使用过程中,遇到了一个问题,新建的环境总是使用了系统原有的包,加上 --no-site-packages 也不行。换个机器又没问题。
    Update: 似乎是因为我没有在新的环境中安装yolk的原因,所以查看包的时候调用到的是系统原有的yolk。
  2. e... 能建个Python 3 虚拟环境么? 似乎不需要,直接安装Python 3就可以并存。
参考:
virtualenv是Python开发常用的工具之一,它可以帮助开发者建立一个独立的虚拟的环境,开发者可以将自己需要用的python package装入到这个虚拟环境中,这样就和系统全局的其他package隔离了,不会影响系统的package布局,要使用这些安装在虚拟环境中的模块,只需要activate进行该环境就OK了,不activate的话就不能使用那些在虚拟环境中的模块,就像从没安装过一样
via Python开发工具virtualenv的使用 - [Python]
[1] Notes on using pip and virtualenv with Django « SaltyCrane Blog
[2] Virtualenv and pip Basics | Jontourage
[3] virtualenv中文文档

没有评论:

发表评论