关于虚拟环境的重要性这里就很少说了,这篇文章介绍一下linux中virtualenv以及virtualenvwrapper的使用。html
使用前提示:注意,你的PATH变量,编译安装的python3必定要放在最前面!python
使用步骤以下:linux
# 1.下载虚拟环境工具(这里是在物理环境下安装的) pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv # 2.使用命令,建立虚拟环境,分别运行一个django1和django2 # 进入一个统一管理的目录,管理虚拟环境例如/opt/allenv # 建立一个统一的虚拟环境目录,便于管理 mkdir /opt/allenv # 进入这个目录 cd /opt/allenv #3.建立python3 的虚拟环境——venv1是虚拟环境的名字 virtualenv --no-site-packages --python=python3 venv1 ''' #参数解释 --no-site-packages 不要任何的第三方包 --python 是指定一个解释器 咱们选的是python3 venv1是虚拟环境文件夹的名字,自定义 ''' #4.进入虚拟环境目录,激活虚拟环境 #source是linux的读取命令,读取一个脚本文件,激活虚拟环境 source /opt/allenv/venv1/bin/activate #5.虚拟环境使用原理是,修改了PATH变量,根据pATH的优先级,使用解释器 #6.激活虚拟环境,在venv1下建立django2项目 注意~建立好虚拟环境后~咱们就能够在这一片区域用pip安装这个环境须要的模块与包了 #7.再开一个窗口,建立venv2,用于建立django1的项目 #8.退出虚拟环境的命令 deactivate
这里我用Xshell开了两个窗口,分别在两个虚拟环境中运行django1与django2的项目(请不要吐槽runserver - -!)shell
~~另外,部署项目前记得关一下防火墙~django
virtualenv 的一个最大的缺点就是:
每次开启虚拟环境以前要去虚拟环境所在目录下的bin目录下source一下activate,这就须要咱们记住每一个虚拟环境所在的目录。vim
可是实际中~再聪明的你也有可能你忘记了虚拟环境放在哪 0.0!bash
一种可行的解决方案是,将全部的虚拟环境目录全都集中起来,例如/opt/all_venv/,而且针对不一样的目录作不一样的事。
使用virtualenvwrapper管理你的虚拟环境(virtualenv),其实他就是统一管理虚拟环境的目录,而且省去了source的步骤。app
pip3 install virtualenvwrapper
#系统变量配置文件是 /etc/profile~~这里咱们配置在我的用户中 #我的用户变量配置文件,在用户家目录下找到这个~/.bash_profile文件,写入以下配置 #打开文件,往里面写入变量 vim ~/.bash_profile #设置virtualenv的统一管理目录 export WORKON_HOME=~/Envs #添加virtualenvwrapper的参数,生成干净隔绝的环境 export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' ## 特别注意下面这两个目录是本身安装的python3 的目录~~这里默认指定的是py3的环境~若是想生成py2的虚拟环境须要用virtualenv单独配置了 #指定python解释器 export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 #执行virtualenvwrapper安装脚本 source /usr/local/bin/virtualenvwrapper.sh
最后记得执行source命令让配置生效:工具
source ~/.bash_profile
#建立一个虚拟环境: mkvirtualenv my_django115 这会在 ~/Envs 中建立 my_django115 文件夹。 #在虚拟环境上工做:激活虚拟环境my_django115 workon my_django115 #再建立一个新的虚拟环境 mkvirtualenv my_django2 virtualenvwrapper 提供环境名字的tab补全功能。 当有不少环境, 而且很难记住它们的名字时,这就显得颇有用。 #workon还能够任意中止你当前的环境,能够在多个虚拟环境中来回切换 workon django1.15 workon django2.0 #也能够手动中止虚拟环境 deactivate #删除虚拟环境,须要先退出虚拟环境 rmvirtualenv my_django115
lsvirtualenv 列举全部的环境。 cdvirtualenv 导航到当前激活的虚拟环境的目录中,好比说这样您就可以浏览它的 site-packages 。 cdsitepackages 和上面的相似,可是是直接进入到 site-packages 目录中。 lssitepackages 显示 site-packages 目录中的内容。 完整官网介绍:https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html
~~spa