virtualenv用于创建python的虚拟环境,使得多个python的应用相互独立。它的优点有:
1、它可以使不同应用开发环境独立。
2、环境升级不影响其他应用,也不会影响全局的python环境,每次pip安装、pip卸载只是在当前虚拟环境中进行。
3、它可以防止系统中出现包管理混乱和版本冲突。这里可以对应java的项目开发理解,java开发时,可以通过maven或者手动将需要的包导入当前的项目中,而在python中,所有pip安装的包都放在了系统python的目录里,如果不同python项目需要的相同包的版本要求不一样就无法满足了。
所以综上,设置python的虚拟环境是非常有必要的。
virtualenv
virtualenv和virtualenvwrapper的安装都可以直接通过pip进行:
pip install virtualenv
pip install virtualenvwrapper-win
通过pip安装完成后,由于virtualenv是安装在python的Scripts\目录下,而这个目录已经配置在了环境变量中,所以在cmd中可以直接运行:
virtualenv envname
这样就会在当前命令的目录下创建一个envname的python环境拷贝,其中包括了python解释器,pip等。
同样,这里也可以指定系统中除了默认的python编译器之外的python环境:
virtualenv -p /usr/bin/python2.7 venvname
激活当前虚拟环境只需要进入Scripts/目录下,运行activate.bat
命令即可,这样当前的工作环境就切换到了新的虚拟环境中,但是此时 pip list
就会发现,虽然拷贝了原先的python环境,但是原先python中的库并没有拷贝,这也说明了这样可以防止系统中出现包管理混乱和版本冲突。
退出当前虚拟环境到默认的系统python环境,则只需要运行deactivate.bat
命令即可。、
virtualenvwrapper
由于系统中可能会有很多python的虚拟环境,所以为了方便对它们进行集中管理,则这时可以用到virtualenvwrapper了,它可以把你所有的python虚拟环境放在同一个位置。
首先,需要在环境变量配置中创建WORKON_HOME环境变量,它指定的目录就是所有虚拟环境创建的目录。
由于virtualenvwrapper安装的命令同样也是在Scripts/下的,所以不需要配置path环境变量,可以直接通过下面通过命令创建虚拟环境,这样创建的虚拟环境就在WORKON_HOME中指定的目录下创建出来了:
mkvirtualenv envname
同样,这里也可以指定系统python之外的python环境:
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venvname
除此之外,virtualenvwrapper在安装后,Scripts/目录下还多了一个workon.bat的命令,通过在cmd中输入workon
命令可以显示所有的虚拟环境,如果想切换到哪个环境中,只需要workon envname
就可以了。