virtualenv------用来创建一个虚拟的python环境,一个专属于项目的python环境。用virtualenv 来保持一个干净的环境很是有用html
在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4。全部第三方的包都会被pip
安装到Python3的site-packages
目录下。python
若是咱们要同时开发多个应用程序,那这些应用程序都会共用一个Python,就是安装在系统的Python 3。若是应用A须要jinja 2.7,而应用B须要jinja 2.6怎么办?这种状况下,每一个应用可能须要各自拥有一套“独立”的Python运行环境。virtualenv就是用来为一个应用建立一套“隔离”的Python运行环境。django
经过pip安装virtualenv:vim
pip install virtualenv
为一个工程项目搭建一个虚拟环境:bash
cd my_project
virtualenv --no-site-packages --python=python3 venvName # 获得独立第三方包的环境,而且指定解释器是python3
# 注意若是提示找不到virtualenv须要先执行一下如下命令:app
[root@dc Python3] /usr/bin/easy_install virtualenv
要开始使用虚拟环境,其须要被激活:ui
source my_project_env/bin/activate
停用虚拟环境:spa
deactivate
停用后将回到系统默认的Python解释器code
用pip freeze查看当前安装的python包htm
pip freeze
这将会建立一个 requirements.txt
文件,其中包含了当前环境中全部包及 各自的版本的简单列表
pip freeze > requirements.txt
安装requirements文件中的包
pip install -r requirements.txt
virtualenv
的一个最大的缺点就是:
每次开启虚拟环境以前要去虚拟环境所在目录下的 bin
目录下 source
一下 activate
,这就须要咱们记住每一个虚拟环境所在的目录。
而且还有可能你忘记了虚拟环境放在哪,使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,而且省去了source的步骤。
pip3 install virtualenvwrapper
把下面两行代码添加到 ~/.bashrc文件中 打开文件 vim ~/.bashrc 写入如下两行代码 export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' #添加virtualenvwrapper的参数,生成干净隔绝的环境 export VIRTUALENVWRAPPER_PYTHON=/opt/python347/bin/python3 #指定python解释器 source /opt/python34/bin/virtualenvwrapper.sh #执行virtualenvwrapper安装脚本 读取文件,使得生效,此时已经可使用virtalenvwrapper source ~/.bashrc
建立一个虚拟环境: $ mkvirtualenv my_django115 这会在 ~/Envs 中建立 my_django115 文件夹。 在虚拟环境上工做:激活虚拟环境my_django115 $ workon my_django115 再建立一个新的虚拟环境 $ mkvirtualenv my_django2 virtualenvwrapper 提供环境名字的tab补全功能。 当有不少环境, 而且很难记住它们的名字时,这就显得颇有用。
workon还能够任意中止你当前的环境,能够在多个虚拟环境中来回切换 workon my_django115 workon my_django2 也能够手动中止虚拟环境 deactivate 删除虚拟环境,须要先退出虚拟环境 rmvirtualenv my_django115
lsvirtualenv 列举全部的环境。 cdvirtualenv 导航到当前激活的虚拟环境的目录中,好比说这样您就可以浏览它的 site-packages 。 cdsitepackages 和上面的相似,可是是直接进入到 site-packages 目录中。 lssitepackages 显示 site-packages 目录中的内容。 完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html