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 + 虚拟环境名称