python虚拟环境-virtualenv
目录因为正在配置新的项目,用到了virtualenv
,所以简单写一下 virtualenv 环境管理工具。
virtualenv
是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。
Python自带了一个venv库,执行Python –m venv就可以达到与virtalenv同样的效果。更多的用户习惯上还是使用virtualenv的方式。
核心:
- 一个操作系统下,可以有多个“操作系统级别的”Python解释器
- 每个Python解释器有一个指向自己的pip工具,两者一一对应
- 通过virtualenv可以虚拟任何一个“操作系统级别的”Python解释器成为一个“虚拟级别”的解释器
- 每个“虚拟级别”的解释器又拥有自己独立的pip工具和site-packages
安装virtualenv
# 通过pip安装virtualenv:
pip install virtualenv
# 测试
virtualenv --version
输出:
virtualenv 20.4.7
创建新环境
mkdir mydir
cd mydir
# 创建新环境
virtualenv mydir_env
virtualenv --no-site-packages myenv
参数:
-p: # 指定你要虚拟的Python版本
--no-site-packages #(可省略) 不复制已经安装到系统Python环境中的所有第三方包,安装纯净的运行环境
# 如果存在多个python解释器,可以选择指定一个Python解释器
virtualenv -p /usr/bin/python3.6 mydir_env
/usr/local/bin/virtualenv -p python3 mydir_env
virtualenv mydir_env
将会在当前的目录中创建一个文件夹,包含了Python可执行文件,以及 pip
库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 venv
)可以是任意的.
激活环境
# window:
# 命令行下,进入你要使用的虚拟环境的目录下的script文件夹,运行activate命令
mydir_env\Scripts\activate.bat
# Linux:
命令行下,进入你要使用的虚拟环境的目录下的bin文件夹,运行activate
source ./mydir_env/bin/activate
# 激活虚拟环境以后,命令行提示符(即PS1环境变量)会显示当前虚拟环境的名字
(mydir_env) $
从现在起,任何你使用pip安装的包将会放在 mydir_env
文件夹中,与全局安装的Python隔绝开。
退出环境
回到默认解释器
# window
运行script目录下的deactivate命令
# linux
deactivate
# 删除虚拟环境,直接删除文件夹
rm –r my_venv
其他
# virtualenv虚拟环境配合pip的freeze功能,可以一次性快捷的将整个环境下的第三方模块全部记录下来
# 用pip freeze查看当前安装版本
pip freeze
numpy==1.19.5
pandas==1.1.5
python-dateutil==2.8.1
pytz==2021.1
six==1.16.0
torch==1.4.0+cu100
# 迁移环境,将第三方包记录到txt 中
pip freeze > requirements.txt
# 对应的,也可以用它一次性通过在别的机器上或虚拟环境里
pip install -r ./requirements.txt
virtualenvwrapper
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境。
virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利。它把你所有的虚拟环境都放在一个地方。
-
将所有虚拟环境整合在一个目录下
-
管理(新增,删除,复制)虚拟环境
-
快速切换虚拟环境
安装
pip install virtualenvwrapper
pip install virtualenvwrapper-win # Windows使用该命令
安装完成后,在~/.bashrc写入以下内容
# 设置环境变量
export WORKON_HOME=~/Envs
source /usr/local/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虚拟环境目录
第二行:virtrualenvwrapper会安装到python的bin目录下,所以该路径是python安装目录下bin/virtualenvwrapper.sh
source ~/.bashrc #读入配置文件,立即生效
创建
mkvirtualenv venv
这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境
若想指定python版本,可通过"--python"指定python解释器
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
基本命令
查看当前的虚拟环境目录
# 列出虚拟环境列表
[root@localhost ~]# workon
py2
py3
切换到虚拟环境
# 切换虚拟环境
[root@localhost ~]# workon py3
(py3) [root@localhost ~]#
退出虚拟环境
# 退出
(py3) [root@localhost ~]# deactivate
[root@localhost ~]#
删除虚拟环境
rmvirtualenv venv