0x01虚拟环境介绍

这里的环境,指的就是 Python 代码的运行环境。它应该包含以下信息:
Python 解释器,用哪个解释器来执行代码?
Python 库的位置,该去哪里 import 所需要的模块?
可执行程序的位置,比如说安装了 pip,那么 pip 命令是在哪里?
由于每个项目的情况都可能不一样,比如这个项目用的是vtk 7.1,另一个项目用的是vtk 9.0。如果不进行环境隔离而是全局安装,就会导致包的冲突从而出现问题,这个时候让每个项目都拥有一套独立的Python环境,这样就不会产生冲突了。Python虚拟环境正是为了解决这个问题而存在的,简而言之,虚拟环境就是系统 Python 环境的一个副本。

Python虚拟环境常见的工具为以下几种:

virtualenv
venv
pipenv

  • virtualenv
    virtualenv 是目前最流行的 Python 虚拟环境配置工具。它不仅同时支持 Python2 和 Python3,而且可以为每个虚拟环境指定 Python 解释器,并选择不继承基础版本的包。

virtualenv 的优点

使得不同Python应用的开发环境相互独立
开发环境升级不影响其他应用的开发环境,也不会影响全局的环境(默认开发环境是全局开发环境),因为虚拟环境是将全局环境进行私有的复制,当我在虚拟环境进行 pip install 时,只会安装到选择的虚拟环境中。
它可以防止系统中出现包管理混乱和版本的冲突

0x02安装

安装方法1

pip3 install virtualenv
pip3 install virtualenvwrapper

安装方法2

sudo apt install virtualenv virtualenvwrapper

查找脚本文件位置

sudo find / -name virtualenvwrapper.sh
/home/ubuntu/.local/bin/virtualenvwrapper.sh

sudo find / -name virtualenv 
/home/ubuntu/.local/bin/virtualenv

编辑~/.bashrc文件加入下列内容

vim ~/.bashrc

追加以下环境变量配置

# virtualenv for python3
if [ -f /usr/local/python3/bin/virtualenvwrapper.sh ]; then

    # 参数1 , 下面的就是默认的, 可以不写 
    export WORKON_HOME=$HOME/.virtualenvs
    # 参数 2, 默认的无需指定 python环境是就会基于一下版本创建新环境
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    # 参数三, 指定virtualenv位置
    export VIRTUALENVWRAPPER_VIRTUALENV=/home/ubuntu/.local/bin/virtualenv  # 之前没有指定这个系统没有识别到virtualenv, 将这个添加到系统变量也可以解决, 但是不建议
    # 参数4, 指定virtualenvwrapper.sh位置, 以上三步为此步做准备
    source /home/ubuntu/.local/bin/virtualenvwrapper.sh
fi

# 让环境变量生效
source ~/.bashrc

更新环境变量

source ~/.bashrc

0x03# 使用

常见虚拟环境使用命令

创建虚拟环境: mkvirtualenv + 虚拟环境名称

创建虚拟环境(指定python版本):     mkvirtualenv -p python + 虚拟环境名称

查看所有虚拟环境:   workon + 2次tab键

使用虚拟环境: workon + 虚拟环境名称

退出虚拟环境: deactivate

删除虚拟环境(必须先退出虚拟环境内部才能删除当前虚拟环境): 
rmvirtualenv + 虚拟环境名称