virtualenv是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.7 / python3.6 ,但是如果都装到一起,经常会导致问题。virtualenv能够用于创建独立的Python虚拟环境,多个Python相互独立,互不影响。

virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。

下面介绍安装python虚拟环境的方法:

使用pip安装包前,先更新pip。

# pip3 install --upgrade pip

1. 安装virtualenv、virtualenvwrapper

# pip3 install virtualenv

# pip3 install virtualenvwrapper

2. 进入.bashrc文件中,定义virtualenvwrapper路径

使用vim编辑.bashrc文件

# vim ~/.bashrc

在文末填入以下代码并保存

VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 # 指定virtualenvwrapper执行的python版本
export WORKON_HOME=$HOME/.virtualenvs # 指定虚拟环境存放目录,.virtualenvs目录名可自拟
source /usr/local/python3/bin/virtualenvwrapper.sh # virtualenvwrapper.sh所在目录

3. 运行.bashrc文件

# source ~/.bashrc

4. 创建虚拟环境

# mkvirtualenv py3-env

也可指定虚拟环境的python版本

# mkvirtualenv --python=/usr/bin/python3 py3-env

5. 进入虚拟环境中,然后进入到项目所在目录,安装好相应的包(如无需要,可跳过此步)

# pip install -r requirements.txt

虚拟环境搭建完成!

常见的virtualenvwrapper命令

创建虚拟环境

# mkvirtualenv my_env

出现问题:(

对于找不到 virtualenv 的报错解决

# 出现这种错误,是因为 virtualenv 这个基础依赖包被安装在默认 Python 目录下,就需要做一个软连接 ln -s。
# ERROR: virtualenvwrapper could not find virtualenv in your path
# 首先还是用 find / -name "virtualenv" 去找到位置
$sudo find / -name "virtualenv"
/usr/local/python3/bin/virtualenv
# 最后进行软连接
$ sudo ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
)
切换到某个虚拟环境
# workon my_env
退出当前虚拟环境
# deactivate
删除某个虚拟环境
# rmvirtualenv my_env
列出所有虚拟环境
# lsvirtualenv
进入到虚拟环境所在的目录
# cdvirtualenv

--------------------------------------------------------------------------

1 安装虚拟环境

sudo pip install virtualenv

sudo pip install virtualenvwrapper

2 激活虚拟环境

source virtualenvwrapper.sh

3 创建虚拟环境

mkvirtualenv -p (编译地址) /usr/bin/pyhon3 (名称) py3

4 若出现未找到命令这种错误就再次激活虚拟环境

5 进入虚拟环境

workon py3

6 退出虚拟环境

deactivate

问题

virtualenvwrapper装好后, 发现使用mkvirtualenv XX时, 又找不到virtualenv了... apt install python3-virtualenv的virtualenv找不到, apt install virtualenv的virtualenv又报缺少python2的path.

解决:

我又想起了上个问题的解决方法, 在~/.local/bin/下找到了virtualenv文件, 这可能就是python3-virtualenv所对应的了, 再将其拷贝至/usr/bin/目录下, 即可.