声明:该文章为作者的学习笔记,敬请批评指正
目录
为什么要创建虚拟环境
不知道你有没有在复现论文的时候遇到这样的情况——作者代码中使用的库与自己的python版本不兼容。这是否意味着我们需要重新下载与之对应的python版本,重新下载以前已经安装好的第三方库?如果不同的项目要求库的版本不同,下载同一个库的不同版本到一个python版本中,会不会发生冲突?
这时候就要引入虚拟环境的概念。一般情况下,不建议将同一个库在两个python版本之间共用,避免发生冲突。创建一个虚拟环境可以很好的项目和本地的python隔离开来,在使用指定版本的同时减小对本地的依赖性,还能加强项目安全性等等。简单来说,在虚拟环境中下载的任何库只存在于该环境中。如此一来,每当我们打开一个项目时为其创建虚拟环境,在其中进行操作;在项目结束之后删除环境,使得对项目的管理更加有条不紊。
如何创建venv虚拟环境
这里以python自带的venv为例讲解虚拟环境的建立。使用venv需要满足一个条件:系统中必须事先下载需要的python版本。这是因为venv是python标准库中的一部分,所以一个python版本只能搭建对应版本的venv。
venv的优点
1.venv 是 Python 3.3 及以上版本的内置模块,无需额外安装。
2.创建的虚拟环境占用资源较少,启动速度快。
3.通过简单的命令即可创建和管理虚拟环境。
venv的缺点
1.不支持多语言环境。
2.使用 pip 管理依赖包,而 pip 检测冲突较麻烦。
如何搭建venv环境
方法一 使用cmd
使用命令行cd进入项目路径,输入语句:
python -m venv 【虚拟环境名称】
,即可在项目目录下创建环境变量中默认python版本的虚拟环境。(不确定自己环境变量中python是什么版本可以执行python --version
查看)
如果想要创建其他版本的venv,可以执行:py -【python版本】 -m venv 【名称】
若使用python命令则要求该版本在环境变量中,而py -【版本】命令更为通用
接下来,在虚拟环境中安装依赖包:
(1)激活环境:
打开cmd输入:【到虚拟环境的路径】\Scripts\activate
(Windows)
source 【到环境的路径】/bin/activate
(Linux/MacOS)
(2)安装包:pip install 【库名】
(3)退出环境:【到虚拟环境的路径】\Scripts\deactivate
方法二 使用pycharm
点击pycharm右下角添加本地解释器
可以发现pycharm提供了多种虚拟环境,第一种即是venv环境,第二种conda环境将在后面介绍。选好版本和路径后会发现项目中多出一个venv文件夹,说明创建成功。
优点:Pycharm会自动处理虚拟环境的激活和停用,用户无需手动在命令行中执行这些操作。
其他虚拟环境管理器:conda
conda也是一种虚拟环境管理器,可以单独下载。此外,anaconda中自带conda,anaconda本身是一个集成了很多数据科学、机器学习或科学计算库的python发行版本。其他管理器可以自行了解。
conda较venv的优点:
1.支持多种编程语言的包管理,如Python、R、Ruby、Java、JavaScript等,这使得Conda在需要管理多种语言项目的场景中特别有用。
2.venv安装库依赖pip模块,而conda能确保安装的包版本兼容,减少了版本冲突的风险。
3.conda中有很多库,而venv创建的是一个空的虚拟环境,它本身不包含任何库,venv的优点是轻量级
4.不需要系统中拥有对应的python版本,conda会帮忙下载
使用conda的方法:
(1)创建环境:在指定目录,执行conda create --name 【名称】 python=【版本号】
(一般存储路径默认在anaconda的envs/
文件夹下,也可以自定义路径conda create --prefix 【yourpath】/env 【名称】
)
(2)激活环境:conda activate 【名称】
(3)安装包:conda install 【库名】
(4)删除环境:conda env remove --name 【名称】
(venv可以直接删除文件夹而conda不建议)
(5)退出环境:conda deactivate