python · python virtualenv · 2015-03-02 · yuex

virtualenv 是 pypi 当中的一个包,用来虚拟一个 python 环境。实现上就是单独建立一个 locallib,并将 python 和 pip 的命令解析到这个 local lib 中。一般而言是将这个 lib 放在 /home/user/ 的家目录下,区别于系统的 /usr/lib 目录。将之用于开发,可以隔离各个包的依赖关系。这在开发过程中,可以保证在版本变化的情况下,已安装好的包的依赖关系的版本不变。

由于目前 python2 和 python3 在很多 linux 发行版的源当中都是共存的,所以在使用 virtualenv 的时候要特别注意,用 mkvirtualenv 新建 virtualenv 之后,其中的 python 和 pip 解析到什么样的命令。否则可以会造成安装偏差。

以笔者的系统为例 (archlinux, 2013-03-02),python2.7 在系统上的命令是 python2,pip 是 pip2, 而 virtualenv 安装之后,默认的解析是 python2/python/python2.7, pip/pip2.7。如果不检查就直接用习惯的 pip2 安装的话,新的包就会安装到系统 lib 而不是新建的 virtualenv lib 中了。

$ mkvirtualenv foo
$ lsvirtualenv foo
$ workon foo
$ cdvirtualenv
$ ll bin
( 注意查看 python 和 pip 的名称 )
$ cdproject
$ finish the work

另外,安装 virtualenv 的时候也要注意使用的是 pip2 还是 pip3,不同版本下的 virtualenv 的命令解析名称也是不一样的。

更多信息,请访问 virtualenv