Python的virtualenv你用过吗?
1. 为什么要有virtualenv
在使用 Python
开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
此时,我们需要对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁。
这里,就要隆重介绍 virtualenv
,一个可以帮助我们管理不同 Python
环境的绝好工具。
virtualenv
可以在系统中建立多个不同并且相互不干扰的虚拟环境。
2. Linux下安装, 配置virtualenv
使用pip安装virtualenv
1 #指定清华源下载pip的包 2 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv 3 #升级pip工具 4 pip3 install --upgrade pip
3. 使用virtualenv创建虚拟环境
你可以在任意一个目录下创建虚拟环境, 在创建虚拟环境时有几个参数主要注意
1 1.创建目录 2 mkdir Myproject 3 cd Myproject 4 2.创建独立运行环境-命名 5 virtualenv --no-site-packages --python=python3 venv#得到独立第三方包的环境,并且指定解释器是python3 6 3.进入虚拟环境 7 source venv/bin/activate #此时进入虚拟环境(venv)Myproject 8 4.安装第三方包 9 (venv)Myproject: pip3 install django==1.9.8 #此时pip的包都会安装到venv环境下,venv是针对Myproject创建的 11 5.退出venv环境 12 deactivate命令
虚拟环境的原理:
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python和pip均指向当前的virtualenv环境。
4. virtualenv环境的应用实例
现在有两个Django项目, 一个是基于Django1.11.11, 另一个是基于Django2.0, 现在就要使用virtualenv虚拟环境让两个项目同时运行
4.1 首先创建两个虚拟环境一个用于Django1.11.11, 一个用于Django2.0
1 [root@17:10 /opt]# virtualenv --no-site-packages --python=python3 env-django-1.0 2 [root@17:11 /opt]# virtualenv --no-site-packages --python=python3 env-django-2.0
在目录下就会生成生成两个虚拟环境
4.2 在不同的虚拟环境下下载不同版本的Django
4.3 在各自的虚拟环境中启动各自的Django, 记得要使用不同的端口哦, 还有修改 ALLOWED_HOSTS = ["*"]