## python虚拟环境的选择
### 一、 virtualenv 和venv的区别
1. venv只支持python3的环境,无法安装python2的的环境,所以,如果需要用到python2就必须安装virtualevn
2. virtualenv可以同时支持python2和python3
 + 如果一台机器同时又python2和python3,建议用python3的pip来安装virtualenv
 + python2下pip安装的virtualenv无法安装python3的虚拟环境
    + python3下Pip安装的virtualenv可以安装python3和python2的虚拟环境
3. 创建虚拟环境命令
    + python3 -m venv myenv   # 在当前目录下创建虚拟环境
    + virtualenv -p python2/python3 myenv  
 + virtualenv -p /usr/bin/python2.7 myenv  
 + virtualenv --python==/usr/bin/python2.7 myenv  
 + virtualenv 如果要创建一个不带已经安装到系统的中第三方包的环境,可以加上参数 --no-site-packages,这样就可以得到一个不带任何第三方包的干净的python运行环境
4. 虚拟环境中的常用操作
    + pip install flask==1.0.2 # 安装指定版本的包
    + pip3 freeze > requirements.txt
 + pip3 install -r requirements.txt
5. 激活虚拟环境
    + virtualenv和venv是一样的,
    + 激活命令 . /~~/myenv/bin/activate   
6. 参考文档
    + [python开发之virtualenv与virtualenvwrapper讲解]()


### 二、 virtualenv 和 virtualenvwrapper的关系
1. 虚拟环境是virtualenv创建的,但是激活使用比较麻烦
2. virtualenvwrapper(虚拟环境封装器)带更加简便的命令
    + 创建(mkvirtualenv)
    + 激活(workon)
    + 删除 rmvirtualenv
 + 列出 lsvirtualenv
 + 进入虚拟环境 cdvirtualenv
 + 复制 cpvirtualenv env1 env2
  + 退出 deactivate

### 三、 安装virtualenvwrapper方法
1. pip install virtualenvwrapper
  windows下面是 pip install virtualenvwrapper-win -i https://pypi.tuna.tsinghua.edu.cn/simple
2. 配置用户~/.bashrc 加入如下内容
    + export WORKON_HOME=/opt/pyenvs
 + source /usr/local/bin/virtualenvwrapper.sh
3. 激活source ~/.bashrc 

### 四、激活virtualenvwrapper报错和解决方法
1. 报错/usr/local/bin/virtualenvwrapper.sh文件不存在

2. workon\mkvirtualenv等命令都提示不能存在
3. 我检查了这个目录下存在这个文件,尝试过各种方法仍然无法解决
4. 解决办法:
    + root用户cd到/usr/local/bin目录下
    + . virtualenvwrapper.sh 直接运行
    + 系统在/opt/pyenvs/下成功创建wrapper需要的文件
    + workon等命令,终于可以使用了
### 五、如果是utuntu desktop版本,使用非root用户安装时报错
1. 报错信息/usr/local/bin/virtualenvwrapper.sh文件不存在
2. 到/usr/local/bin 目录下确实没有virtualenvwrapper这个文件时
3. 但命令行会提示出,virtualenvw能自动补全时,可以使用which查找真实的位置
4. 我的查出来是在/home/bruce/.local/bin/virtualenvwrapper.sh
5. 把~/.bashrc 里面的路径改成查找的这个,再运行source ~/.bashrc