virtualenv:在一台机器上运行多个Python环境的利器

1. 简介

virtualenv 为用户提供了一种在一台机器上运行多个Python环境的工具,应用场合其实有很多,比如你不同的应用依赖的python库版本不同,这样你需要不同的python环境才可以工作。网上有很多相关的介绍,这里不再重复,说一下我自己的需求。

2. 我的需求

以前我一直用debian,现因为单位有台服务器要部署centos,因此在自己电脑上也装了一个centos,自2006年毕业后就再也没有用过RH系的Linux系统,用习惯了debian上的大而全的软件库,乍一用yum还真不习惯。特别是我经常在自己电脑上上网抓点东西,用到的python库比较多。而centos的yum库里没有pip(只有easy_install)、没有ipython、没有scrapy、没有pandas、没有sqlalchemy、没有django……抓狂,当然也没有python3。可我又不想直接用easy_install装一堆不能卸载的东西在/usr/local下。

3. 创建虚拟环境

好在YUM库里有virtualenv,直接做个虚拟环境在一个特定目录下(我是在/usr/local/pythonV,你可以自选),直接运行:

virtualenv /usr/local/pythonV

这个目录可以将其属主设置为普通用户,这样你便可以用普通用户的身份搭建一个python虚拟环境了。运行完后在/usr/local/pythonV下会生成一些python环境必须的二进制文件和相关的核心脚本,还有pip。然后激活这个环境:

source /usr/local/pythonV/bin/activate

然后你的命令行提示符前会有个 (pythonV) ,说明现在的python环境在工作在这个目录下。然后你可以用pip来安装需要的python库了。如果想退出这个虚拟环境,直接运行deactivate即可。

由上图可以看出,激活虚拟环境前和之后的python路径是不同的。

4. 在程序中激活

那各位看观可能要问了,那是不是我每次运行个程序里还要重新敲命令来激活一下这个虚拟环境吗?有没有更方便的方法?当然有,你可以在程序中指定,只需将下列代码写进去即可:

activate_this = '/usr/local/pythonV/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章