为什么要使用虚拟环境?
虚拟环境又称沙箱环境,Python虚拟环境的主要目的是为了给不同的工程创建互相独立的运行环境,可以看做是一种容器,里面所做的一切都可以推倒重来。
虚拟环境可以为一系列潜在问题提供简单的解决方案,相当于使用备份的开发环境进行代码的编写,可以解决版本依赖性问题。同时,项目也可以在不同的开发环境下进行测试。虚拟环境的数量也是没有限制的,可以说是开发人员与测试人员的利器!
笔者将从Win10与CentOS7两大系统上讲解如何安装和使用虚拟环境!(没错!笔者买不起Mac,哭嘤嘤,Mac用户请参考Linux下的配置)
首先先说明一下,笔者比较喜欢使用virtualenvwrapper这个虚拟环境管理模块,会着重讲解。
Python3的venv包
Python3.3以上的版本是有****自带****的原生虚拟环境的,即venv包。
在CentOS下,先进入你要存放虚拟环境的目录,通过 python - m venv 命令创建虚拟环境,后面跟虚拟环境名称。使用此命令后,当前目录下会出现一个与你创建的虚拟环境名同名的文件夹,此时虚拟环境创建完毕。。
然后通过source激活虚拟环境,deactivate命令用于退出虚拟环境。
# 进入存放虚拟环境的目录
cd venv/
# 创建名为django_venv的虚拟环境
python3 -m venv django_venv
# 启动名为django_venv的虚拟环境
source django_venv/bin/activate
# 退出虚拟环境
deactivate
在Windows平台下创建虚拟环境的语法与Linux环境下相同,但启动方式却存在差异。
# 进入存放虚拟环境的目录
cd venv/
# 创建名为django_venv的虚拟环境
python3 -m venv django_venv
# 启动名为django_venv的虚拟环境
django_venv\Scripts\activate
# 退出虚拟环境
deactivate
需要注意的是,上述Windows平台下激活虚拟环境使用的是反斜杠“\”。并且,在DOS下激活虚拟环境其实就是运行Scripts文件夹下的activate,命令其实是多种多样的。
virtualenv模块
如果你使用的是Python3.3以下的版本,无法使用venv包,那么你可以使用pip命令安装virtualenv模块。
pip install virtualenv -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
virtualenv模块的用法其实和原生venv包的用法大致相同。首先使用virtualenv来创建虚拟环境,Linux平台下通过source命令激活虚拟环境,Windows平台则去Scripts文件夹下激活activate。
# 进入存放虚拟环境的目录
cd venv/
# 创建名为django_env的虚拟环境
virtualenv --no-site-packages --python=python3 django_env
# 启动名为django_venv的虚拟环境
source django/bin/activate
# 退出虚拟环境
deactivate
上述代码中是在CentOS7中的示例,--no-site-packages 参数表示的是,创建的虚拟环境不包含系统中安装的第三方包,可以用来创建一个纯净的python环境。当然,这个参数也可以不添加。--python=python3则是指定要被虚拟的解释器环境。至于Windows中的激活虚拟环境的方法可参考上文venv包的激活虚拟环境的方式。
virtualenvwrapper模块
这个模块则是今天的重头戏。虽然venv包与virtualenv模块都挺好用,但还是启动的语法还是比较繁琐的。而且Windows平台下还需要去安装目录启动。安装路径只能在使用命令的目录,经常会出现忘记的情况。
于是,我们则需要virtualenvwrapper这个模块来进行虚拟环境的管理。该模块可直接使用pip命令安装。
# CentOS7安装virtualenvwrapper
pip3 install virtualenvwrapper -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
# Windows平台下安装virtualenvwrapper
pip install virtualenvwrapper-win -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
需要注意的是,Windows平台下通过pip安装virtualenvwrapper模块需要在模块名后面加-win。
当我们安装好模块后,我们需要配置virtualenvwrapper的环境变量。
Windows平台下打开控制面板-系统和安全-系统-高级系统设置-环境变量-系统变量-点击新建。
新建系统变量WORKON_HOME,变量值为你自定义的虚拟环境存放路径。
Linux平台下我们需要修改两个配置文件,为其设置开机启动。
首先,我们先通过which命令或whereis命令找到python3和virtualenvwrapper.sh的路径。
找到安装位置后,设置 /etc/profile 会影响全部用户。,设置 ~/.bashrc 则针对当前用户。
下列代码将针对当前用户进行设置。
# 使用vim编辑器进行配置
vim ~/.bashrc
键入上述代码后,使用source命令使其生效
source ~/.bash_profile
注意,有时需要重启终端才能生效。
此时,我们就可以开始创建虚拟环境了。
# 创建虚拟环境
mkvirtualenv django_env
# 激活虚拟环境
workon django_env
# 列出现有的虚拟环境
lsvirtualenv
# 退出虚拟环境
deactivate
# 删除指定的虚拟环境
rmvirtualenv django_env
virtualenvwrapper最好用的一点就是可以随时随地通过workon进入虚拟环境,还可以使用table件进行名称补全,以及自定义存放虚拟环境的路径等。
其实,笔者还也很喜欢使用Anaconda来进行虚拟环境的配置。
关于Anaconda的安装与使用,笔者将放在下一篇文章讲解。