什么是虚拟环境?python为什么需要它?相信无论是学习或则开发都遇到过不同的python环境互不兼容的情况。比如,平时用cenos7的时候,yum
是用的 python2
解析器;而部署django服务器的时候则用的 python3
。这样不兼容的情况如果不加以管理,随着类似情况的堆叠,慢慢的就会应接不暇,暴露出许多问题。
虚拟环境可以让你在开发或学习一个python项目的时候,将项目所需的库和解析器都放到一起进行管理。可以方便的进行变更、迁移和删除。今天要介绍的这个虚拟环境工具就是 virtualenv
。
本文所用操作系统:CentOS 7
1.开始安装在bash下执行命令:pip install virtualenv
2.测试是否安装成功,执行命令:virtualenv --version
,如果安装成功会有如下类似结果:
[wang_hongqi@ser999118925586 ~]$ virtualenv --version
virtualenv 20.7.2 from /usr/local/lib/python3.6/site-packages/virtualenv/__init__.py
假设我有个基于python3.6的django工程。但是当前系统下有两个python版本,一个是系统默认的python2.7,安装位置为/usr/bin/python
;另一个是python3.6,安装位置为/usr/bin/python3.6
。
那么接着用virtualenv为django工程创建一个专门的python3.6环境,坐稳了,起飞~
1.那么为它创建虚拟环境django_env
如下所示:
cd django_project
django_env
:virtualenv -p /usr/bin/python3.6 django_env
-
p参数是用来指定python解析器的位置,后续环境都是使用该解析器(如此一来,就能通过环境解决解析器兼容问题)。创建虚拟环境 django_env
完成2的操作后会在工程目录下,生成一个虚拟环境目录django_env
,该目录用来存放虚拟环境指示的解析器和后续通过pip安装的库等。(如此一来,可以保证环境的干净,因为在环境中安装的库都会被放在虚拟环境目录django_env
中)
2.使用虚拟环境django_env
:source django_env/bin/activate
,如下所示:
使用环境 django_env
如上图所示,可以注意到,在终端的提示符前多了个环境名称。如果你执行后也是这个效果,那么就代表你进入到了这个环境中了。接着就可以开始你的一系列开发工作了,比如使用pip
安装python库、基于此环境开始编译和开发django工程。
原理 其实
virtualenv
的原理很简单,主要是通过设置环境变量,比如PATH
环境变量:
如上图所示,可以看出,PATH
路径在开头被添加了/home/wang_hongqi/django_project/django_env/bin
,这意味着后续在bash下执行命令的时候,会优先查找该目录。
3.退出虚拟环境:deactivate
lsvirtualenv
cdvirtualenv
cdsitepackages
lssitepackages