首页 > 其他分享 >venv vs conda

venv vs conda

时间:2023-06-04 20:46:49浏览次数:36  
标签:venv name Python 环境 vs conda env

Python的venv模块和Anaconda的conda命令都用于创建和管理Python的虚拟环境,这些环境是隔离的,能够防止不同项目的库版本冲突。

venv

venv是Python的一个标准库,它用于创建隔离的Python环境。每一个venv环境都有自己独立的Python解释器、库和脚本。这种隔离性使得我们可以在不同的项目中使用不同版本的库,而不需要担心库版本之间的冲突。

命令python3 -m venv <目录>就可以创建一个独立的Python运行环境。

观察bin目录的内容,里面有python3、pip3等可执行文件,实际上是链接到Python系统目录的软链接。

继续进入bin目录,Linux/Mac用 source activate,Windows用 activate.bat 激活该venv环境。

退出当前环境用: deactivate

如果不再使用某个venv,例如proj101env,删除它也很简单。
首先确认该venv没有处于“激活”状态,然后直接把整个目录proj101env删掉就行。

参看:

conda

conda 是由 Anaconda 开发的开源跨平台语言无关的包管理器。它用于安装各种包,可以用于Python,R,Ruby,Lua,Scala,Java,JavaScript,C/ C++,FORTRAN等等,尽管Python是最常见的使用情况。

同时,conda也是一个环境管理系统,用于在同一机器上创建有不同Python版本或包集合的隔离环境。

conda在大数据科学、机器学习、深度学习和相关领域特别受欢迎,这是因为它能很好地处理具有复杂依赖关系的大型科学计算包,比如NumPy,SciPy,Pandas等。

conda的优点之一是它的跨平台性,它可以在Windows,macOS和Linux上运行。此外,conda也支持二进制包,这意味着在安装包时无需从源代码编译,这通常比使用Python的默认包管理器pip更快,更容易。

常用的conda命令。

# 查看conda版本,验证是否安装
conda -V

# 更新conda至最新版本
conda update conda

# 更新所有包
conda update --all

# 更新指定的包
conda update package_name

要创建新的conda环境,你可以使用conda create -n [环境名] python=[python版本] [需要安装的包]命令。这将创建一个新的conda环境,并在其中安装指定的Python版本和指定的包。

例如:
conda create -n python3 python=python3.7 numpy pandas
创建了python3环境,python版本为3.7,同时还安装了numpy pandas包

激活环境的命令为conda activate [环境名]
conda activate env_name

停用环境的命令为
conda deactivate。

# 显示所有已经创建的环境
conda info -e
# 或者使用
conda env list

# 复制 old_env_name 为 new_env_name
conda create --name new_env_name --clone old_env_name

# 删除环境
conda remove --name env_name --all

# 查看所有已经安装的包
conda list

# 在当前环境中安装包
conda install package_name

# 在指定环境中安装包
conda install --name env_name package_name

# 删除指定环境中的包
conda remove -- name env_name package

# 采用上一步方法删除环境失败时,可采用这种方法
conda env remove -n env_name

# 删除当前环境中的包
conda remove package

# 更新默认的conda版本
# 先检查并确认是 base 这个环境
conda env list

# 执行下面命令做默认conda的升级。
conda update anaconda

conda 有些包没有时,可以考虑如何在 conda 环境中使用 pip 进行安装?

区别

尽管他们的功能相似,但是他们之间存在一些主要的区别。

包管理器

venv使用Python的内置包管理器pip来管理软件包。Pip是Python的官方包管理器,包含了Python的大部分库。

而conda是Anaconda distribution的包管理器,可以管理Python以及其他非Python的包。

跨平台性

venv是Python的一个内置模块,因此在任何Python环境中都可用。

而conda只在Anaconda distribution中可用。如果你没有安装Anaconda,你就不能使用conda命令。

环境隔离程度

两者都能隔离Python的版本和库,但是conda提供了更深层次的隔离。

例如,conda可以管理不同的Python解释器版本,还可以管理非Python的包,如R包,或是系统级别的库。

库的覆盖面

如果你需要的库是Python的,那么venv和conda都可以很好地完成工作。

但是,如果你需要的库是非Python的,或者是一些科学计算的库,例如numpy, scipy, tensorflow等,那么使用conda会更方便,因为Anaconda distribution包含了这些库的预编译版本,可以方便地安装。

适用场景

哪一个更适合你,取决于你的具体需求。

venv:

如果你的项目只需要Python库,并且不需要特定版本的Python解释器,那么venv是一个很好的选择。这也是大多数Python开发者的默认选择。

conda:

如果你的项目需要一些科学计算的库,或者需要管理非Python的包,那么conda可能是更好的选择。

Anaconda distribution被设计为用于数据科学和机器学习的项目,包含了许多预编译的科学计算库,可以节省你的安装时间。

此外,如果你需要管理不同版本的Python解释器,那么conda也是一个很好的选择。

标签:venv,name,Python,环境,vs,conda,env
From: https://www.cnblogs.com/ghj1976/p/venv-vs-conda.html

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题
    三、利用指示器随机变量来计算掷n个骰子之和的期望值。文心一言:为了计算掷n个骰子之和的期望值,我们需要先了解一个重要的概念:指示器随机变量。指示器随机变量是一种特殊的随机变量,它只有两个取值:0和1。通常用I来表示指示器随机变量,它的取值为1表示事件发生,取值为0表示事件未发生。......
  • 文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题
    三、利用指示器随机变量来计算掷n个骰子之和的期望值。文心一言:为了计算掷n个骰子之和的期望值,我们需要先了解一个重要的概念:指示器随机变量。指示器随机变量是一种特殊的随机变量,它只有两个取值:0和1。通常用I来表示指示器随机变量,它的取值为1表示事件发生,取值为0表示事件未发......
  • vscode去除斜体注释
    在设置里面打开setting.json文件在大括号后面追加下面的代码//去除斜体注释"editor.tokenColorCustomizations":{"textMateRules":[{"name":"Comment","scope":["comment","comment.block&......
  • python环境 anaconda安装
    官网:https://www.anaconda.com/distribution/#macos国内镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/安装时注意勾选:安装后,加入国内源:condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/condaconfig--setshow_cha......
  • vscode插件开发----如何向输出通道中输出信息
    插件有时候需要输出一些信息,那么如何在输出通道中显示呢?使用如下代码即可:varoutputChannel:vscode.OutputChannel;//输出通道/***输出信息到控制台上,输出通道为MyCoder*@parammessage输出的文本信息*/exportfunctionmylog(message:string){if(outputC......
  • vscode插件开发----获得当前打开的文件名
    采用下面代码即可:importvscode=require('vscode');//激活函数,是首先要调用的exportfunctionactivate(context:any){//注册一个命令letdisposable=vscode.commands.registerCommand('codeStat.countCurFile',function(){leteditor=vscode.window.......
  • vscode插件开发----在编辑栏上增加菜单项
    在package.json做如下配置:"contributes":{"commands":[{"command":"codeStat.countCurFile","title":"统计当前文件"}],"menus":{"editor/t......
  • 在 VS Code 中使用 GitHub Actions 以及 在仓库中创建一个 .github/workflows 目录
    在VSCode中使用GitHubActions需要完成以下步骤:1.首先,需要在GitHub上创建一个仓库,并在仓库中创建一个`.github/workflows`目录,用于存放GitHubActions的工作流文件。2.在VSCode中打开该仓库,并在左侧的“资源管理器”中选择`.github/workflows`目录。3.右键......
  • “AIR SDK 0.0: AIR SDK location “...\devsdks\AIRSDK\Win” does not exist.”
    导入AS3项目时提示“AIRSDK0.0:AIRSDKlocation“D:\ProgramFiles\Adob5eFlashBuilder4.7\eclipse\plugins\com.adobe.flexbuilder.flex_4.7.0.349722\devsdks\AIRSDK\Win”doesnotexist.”是AS3项目找不见AIRSDK.打开项目配置ActionScriptBuildPath,路径出错......
  • VSCode 如何将已编辑好的python文件中的 tab 键缩进转换成4个空格键缩进
    事情起源:使用vscode维护一个7年前的python项目,发现编辑后运行报错,提示缩进错误,原因是当时的项目使用tab做缩进,而我正在用的vscode是使用4空格做缩进,因此造成了缩进不匹配的问题。  如何解决?把自己的vscode缩进从4空格改为tab貌似是最可行的,但是考虑其他项目的匹配问题又总不能老......