一、概述
有时候会在一台主机上安装多个不同的Python版本,用以运行不同时期开发的项目,而在这些不同的Python版本上有时又会加装不同的库和包,因此需要一种工具来管理各个不同的Python版本和运行环境。
virtualenv工具可以为每个Python项目创建一个“独立隔离”的虚拟Python运行环境,而且每个项目都可以为自己独立的Python运行环境加装不同的扩展包和库,而不影响其他项目。
在使用virtualenv之前,首先需要保证你的操作系统上已经安装了所需的Python版本。比如,如果你在操作系统上已经安装了Python2.7和Python3.7,那么就可以利用virtualenv克隆出多个多个Python2.7和Python3.7独立运行环境。但是如果你还需要Python3.4环境,那么就必须先在操作系统上安装Python3.4版本。
virturalenv创建虚拟Python环境的结构示意图如下图所示:
二,Linux下安装Python虚拟环境
一般Linux发行版都会已经安装好一个Python版本,你只需要再安装其它你需要的Python版本就行了。以CentOS为例,默认已安装好Python2.7,你只要再安装一个Python3.7即可。下面是虚拟环境的建立步骤:
<强> 1。安装Python3 强>
(1)下载安装包:
# wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
(2)解压缩:
#焦油-xvzf Python-3.7.4.tgz
(3)配置将要安装的目录:
进入解压后的Python-3.7.4目录
#。/果酱——prefix=/usr/地方/python3.7.4
这样,python3包中的所有用到的文件都会安装到这个目录中。否则,待会让时,会将一些python3的文件分散安装到系统的bin、lib等目录。不利于以后的卸载。若是这样装,以后要卸载时,直接删除这个目录就行了。
(4)安装前置包
对于python3.7及以上版本,还需安装若干个前置包,如下:
。安装libffi-devel
# yum安装libffi-devel - y
b。安装zlib
# yum - y安装zlib * 或: # wget http://www.zlib.net/zlib-1.2.11.tar.gz #焦油-xvf zlib-1.2.11.tar.gz # cd zlib-1.2.11 # ./configure #让 #让安装
(5)编译,安装Python:
#让 # makeinstall
(6)建立软链接:
在工作路径下:
# ln - s/usr/local/python3.7.4/bin/python3.7/usr/bin/python3 # ln - s/usr/local/python3.7.4/bin/python3.7/usr/bin/python3.7
注意,由于<代码>/usr/bin/百胜代码>程序需要用到Python2,所以我们不能修改/usr/bin/python这个软链接(仍指向Python2.7)
如果一定要默认使用Python3,可以改<代码>/usr/bin/百胜代码>文件,将其开头第一行改为:
<代码> # !/usr/bin/python2.7 代码>
<强> 2。安装virtualenv 强>
(1)安装virturalenv
利用Python3可直接安装virtualenv(会默认装到/usr/地方/python3.7.4/bin/路径下)。
# python37 - m pip安装virtualenv
(2)再做个软链接
ln - s/usr/local/python3.7.4/bin/virtualenv/usr/bin/virutalenv
3。使用virtualenv建立虚拟环境
(1)新建(本用户的)总虚拟目录
<代码> mkdir ~/美元python_envs 代码>
(2)建立多个Python虚拟环境
。建python27虚拟环境
我们先建立一个名为:py27_dj111的虚拟环境,名字一目了然:Python版2.7本,为了运行Django1.11。
美元virtualenv - p python2.7——no-site-packages ~/python_envs/py27_dj111
上条命令将建立一个py27_dj111的目录和一个干净的Python2环境。
b。建python37虚拟环境
我们再建立一个名为:py37_dj218的虚拟环境,名字一目了然:Python版3.7本,为了运行Django2.18。
美元virtualenv - p python3.7——no-site-packages ~/python_envs/py37_dj218
上条命令将建立一个py37_dj218的目录和一个干净的Python3环境。