虚拟环境
引言
- 场景:两个或多个项目需要某一个库的版本不一样,默认情况下,使用都是全局python环境,不能在一个库安装多个版本的库,使得运行一个项目后,需要安装其他版本的库再运行另外一个项目
- 解决:创建虚拟环境,一个独立的python局部环境,一个项目对应一个虚拟环境,下载对应版本的库
一、概念
局部的、独立的python环境就是虚拟环境,拥有与全局python环境一样卸载安装等等的操作
二、virtualenv
-
安装
pip install virtualenv
-
文档说明:https://virtualenv.pypa.io/en/latest/user_guide.html
-
使用
-
创建一个局部的隔离的虚拟环境(进入需要创建虚拟环境的目录)
virtualenv 虚拟环境名称
-
可选参数-p
-
到时候使用该参数指定的版本的python解释器执行代码,默认是你创建虚拟环境时用的python版本
virtualenv -p 指定版本的python.exe路径 虚拟环境名称
可选参数–system-site-packages
-
到时候虚拟环境没有会到系统的第三方库查找,没有指定只能在自己虚拟环境库里面查找
virtualenv --system-site-packages 虚拟环境名称
-
-
-
激活
- 进入虚拟环境目录/scripts文件夹,执行deactivate.bat
- 执行后,后续的操作如安装三方包与执行代码等等都基于这个虚拟环境(我测试是没有设置环境变量,没有进入进入虚拟环境目录/scripts文件夹还是系统的python解释器)
-
可以安装三方库、执行代码等等操作(都基于这个虚拟环境)
-
退出虚拟环境
- 进入虚拟环境目录/scripts文件夹,执行deactivate.bat
- 执行后,后续的操作如安装三方包与执行代码等等都基于全局python环境
-
删除虚拟环境
- 直接删除当前文件夹即可
-
注意:
- 当别人需要你代码在他机器跑时
- 方案一:连同虚拟环境文件夹和项目一起拷贝
- 方案二:在虚拟环境中冻结依赖需求文本,把项目和依赖需求文本给别人,别人自己创建一个虚拟环境,根据冻结文本安装相关库
- 当别人需要你代码在他机器跑时
二、pycharm使用虚拟环境
三、virtualenvwrapper-win集中式虚拟环境管理
-
文档说明:https://pypi.org/project/virtualenvwrapper-win/
-
基于virtualenv,更方便的管理virtualenv
-
使用
-
创建一个虚拟环境(进入需要创建虚拟环境的目录)
mkvirtualenv 虚拟环境名称
- 会创建在特定文件夹中,windows一般在用户目录的Envs文件夹下
- 激活新的虚拟环境
-
-
查看所有的虚拟环境
lsvirtualenv workon # 列出当下创建的所有虚拟环境
-
切换激活虚拟环境
workon 切换虚拟环名称 # 激活指定1的虚拟环境
-
退出虚拟环境
deactivate # 关闭当下所在的虚拟环境
-
删除虚拟环境
rmvirtualenv 虚拟环境名称 # 删除指定的虚拟环境,删除对应的文件夹,退出对应虚拟环境的状激活态
四、更加基于项目的虚拟环境管理Pipenv
-
功能作用:pip + virtualenv,工具内部封装了以上两个功能
-
优势:
- 不需要再分别使用pip和virtualenv,直接使用Pipenv即可,会自动创建虚拟环境,以及安装第三方库,会记录你的项目依赖的所有三方库
- 使用Pipfile和Pipfile.lock取代了requirement.txt
-
文档说明:https://docs.pipenv.org/
-
使用
-
创建一个虚拟环境(进入需要创建虚拟环境的目录)
pipenv --three 虚拟环境名称
-
查看相关信息
# 查看项目位置 pipenv --where # 查看虚拟环境位置 pipenv --venv # 查看解释器信息 pipenv --py # 查看包依赖机构 pipenv graph
-
-
激活虚拟环境
pienv shell
-
可以安装三方库、执行代码等等操作(都基于这个虚拟环境),不要使用pip,使用pipenv
-
退出虚拟环境
- exit
- 或者关闭shell
-
删除虚拟环境
pipenv --rm
-
注意:
- 当别人需要你代码在他机器跑时
- 连同使用Pipfile和Pipfile.lock和项目一起上传
- 执行pipenv install(不用加其他参数),pipenv shell 激活
- 当别人需要你代码在他机器跑时