安装conda并搭建python环境(入门教程)

news2024/11/30 2:31:08

文章目录

  • 1. 什么是 conda?
    • 1.1 Conda 与 Anaconda 的区别
    • 1.2 Conda 与 pip 的区别
  • 2. 下载安装
  • 3. 配置并使用 conda
    • 3.1 配置下载源
    • 3.2 环境管理
      • 3.2.1 创建(删除)环境
      • 3.2.2 激活(切换)环境
      • 3.2.2 下载(卸载)库
      • 3.2.3 导出(导入)环境
    • 3.3 试运行 py 文件


1. 什么是 conda?

在初学Python之时,就常听别人说用 conda 有多方便,一直不以为然,直到接触需要调用有大量依赖库及版本间有显著差异的深度强化学习领域时,才知道用 conda 管理环境会有多方便,那么什么是 conda?

在这里插入图片描述
Conda 发行并开源于 2012 年,是一个可以在Windows、maxOS和Linux上运行的包和环境管理系统,它能够适用于任何语言的打包和分发,包括Python、R、Ruby、Lua、Java、C/C++等。Conda 允许用户方便地安装、运行和更新不同版本的二进制软件包与该计算平台所需要的所有库(以及库的依赖项)。在实际当中,利用 conda 最主要的目的是为了使得不同版本Python环境、不同版本模块能够共存和灵活切换。

在默认配置下,conda可以安装和管理来自repo.anaconda.com仓库的7,500多个软件包,该仓库由Anaconda生成,审查和维护。

除了 conda,我们常常看到的 Anaconda 和 Miniconda 又是什么呢?接下来将介绍 conda 与它们之间的区别。

1.1 Conda 与 Anaconda 的区别

诸如 Anaconda、Miniconda、Bioconda(用于计算生物学)等都是基于 conda 的工具软件,这些软件均包含 conda 包和环境管理器,但两者的概念仍要进行一定的区分。

Anaconda 是一个大而全的软件发行版,是一个预先建立和配置好的模块集,能够安装在操作系统上使用。它包含了Python本身和数百个第三方开源项目的二进制文件,如 numpy、scipy、ipython、matplotlib等,这些库基本是为了方便处理数据科学相关的问题。

Miniconda 也是一个软件发行版,但它仅包含python、conda 和 conda 的依赖项,本质上就是一个空的用来安装 conda 环境的安装器,它没有 Anaconda 中那么多的包,可以理解为 Anaconda 的精简版,能够方便用户按照自己的需求,从零开始构建任意的环境。

尽管可以独立地下载安装 conda 而不用 Anaconda 和 Miniconda,但后两者为提供了 conda 安装环境,使用起来会更方便。

1.2 Conda 与 pip 的区别

Conda 作为软件包管理器,可以帮助用户查找和安装软件包,这与另一个常见的基于Python的跨平台包管理器 pip 类似。那既然 Python 自带了 pip 包管理工具,为什么还会需要使用 conda 呢?

先来介绍 pip,它是 Python 包的通用管理器,全称是 Pip Install Packages,它是一个Python官方认证的包管理工具,只能管理python包而无法安装非Python依赖项,例如HDF5、MKL、LLVM等,通常用于在相互独立的环境中安装发布在 Python Package Index(PyPI)上面的包。Pip和 PyPI 均由Python Packaging Authority(PyPA)管理和支持。

conda 既具有 pip 的包管理能力,同时也具有 vitualenv 的环境管理功能,因此在相互独立的环境中,可以简单认为 conda 就是 pip 和 vitualenv 的组合,在包管理这方面,conda 不仅能管理 python 包,还可以管理任何类型的、用任何语言写的包和依赖,包来源是 Anaconda repo(默认)和 Cloud。

简单而言,pip 与 conda 最关键的区别在于,在使用 pip 之前,必须通过系统软件包管理器下载和安装python解释器,而 conda 可以直接安装 python 软件包以及解释器,但 conda 只能在 conda 环境下安装各类的包,因此需要先创建 conda 环境。

2. 下载安装

这里我们演示 Miniconda 的下载安装,软件包的下载来源有两种:

  1. 官方网站:https://docs.anaconda.com/free/miniconda/miniconda-install/
  2. 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/,个人试了下镜像源关闭了,好像是因为 Anaconda 和 Miniconda 未取得授权1

(1)检查系统条件是否满足

在下载安装 Miniconda 之前,先检查下电脑的系统及硬件等条件是否符合安装要求。如果因为系统版本较旧的原因,可以下载对应的旧版本 Miniconda,以下是官网中对系统要求的描述。

在这里插入图片描述
(2)下载相应安装包

如下图,以 Windows installers 为例,不同版本的 Miniconda 安装包可以支持的最高版本的 python 情况不同,可以按需下载,这里我下载了支持 python3.12 的软件版本,安装文件为:Miniconda3-latest-Windows-x86_64.exe
在这里插入图片描述
(3)执行安装

运行安装包执行文件,依次点击下一步即可,可以自定义安装的路径,中间的安装设置按照默认的来即可。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(4)检查是否安装成功

完场上述步骤之后,需要再检查下 conda 是否能够正常使用。在电脑左下角搜索找到 Anaconda Prompt,点击打开后,在控制台中输入 conda --version,回车如果返回了 conda 版本信息则说明安装成功。

在这里插入图片描述
在这里插入图片描述

在窗口中输入 conda list,会返回当前环境下已经安装好的包,如果出现该列表则说明 conda 已经正确安装。其中,包含了对应的解释器 python3.12.2。

在这里插入图片描述

3. 配置并使用 conda

至此完成了 conda 包和环境管理工具的安装,此时我们可以进行一些简单的配置并尝试创建 conda 环境,安装需要的库和运行简单的 python 程序。

3.1 配置下载源

Conda 包管理器下载各类库的来源是国外的服务器,常常会面临下载速度慢的问题。可以为 conda 添加软件包通道(channel),以清华源为例,在打开的 Anaconda prompt 控制台窗口中,输入如下命令可以将清华源的两个地址添加到通道。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

为了在查看 conda 软件包通道的下载链接时能显示我们手动配置的通道地址,可以通过如下命令进行设置:

conda config --set show_channel_urls yes

如果不配置下载源,conda 会使用默认的软件包通道,即从官方 Anaconda 仓库获取软件包。具体的软件包通道情况可以通过 conda config --show 命令查看,返回的信息不仅能看到下载源的地址信息,还能看到创建的 conda 环境所在的文件夹。如果想要重置下载源的信息,可以用 conda config --remove-key channels 命令实现。

当然,除了通过命令行的形式添加下载源,也可以直接修改配置文件 .condarc,在 Windows 系统下,它通常位于 “C:\Users\用户名\” 路径下,可以手动添加如下内容进行配置:

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults

只有在执行前面的配置下载源的命令时才会出现 .condarc 文件,默认情况下时没有的,如果没有该文件,可以自己手动创建一个文件并写入以上的内容,保存后,conda 将会使用其中配置的下载源来获取软件包。

3.2 环境管理

现在来到 conda 的另一大功能,就是环境管理,它可以创建、管理和切换不同的环境,这些环境之间是相互独立的,每个环境当中的 Python 版本和软件包版本可以不相同,使得我们可以把依赖版本不同的项目放在同一台设备上的不同 conda 环境中运行。

conda 命令不仅可以在 anaconda prompt 控制台当中运行,默认会进入到 conda 环境,也可以在 cmd 或者各类 IDE 当中的控制台输入 conda 命令,不过此时就得先激活并进入到 conda 环境。

3.2.1 创建(删除)环境

要创建一个新的 conda 环境,可以使用 conda create 命令,指定该环境下所需的 Python 版本和要安装的软件包。例如:

conda create --name myenv python=3.8 numpy matplotlib

这将创建一个名为 myenv 的环境,并在其中安装 Python 3.8NumPyMatplotlib。在创建环境时,会有软件包列表的提示。输入 y 确认后即等待环境创建即可。

在这里插入图片描述

如果不想要一个环境了,例如我们要把 myenv 这个名字的环境删除,可以通过如下命令进行删除:

conda remove --name myenv --all

该命令会删除 myenv 环境及环境下所有的安装包,该操作是不可逆的,在执行之前需确认好。

3.2.2 激活(切换)环境

经过环境的创建之后,我们用 conda env list 来查看已有的 conda 环境,发现已经创建好了名为 myenv 的环境,但是此时我们根据如下位置判断我们所在的 conda 环境仍然是名为 base 的环境,因此我们要激活并切换到 myenv 环境中。

在这里插入图片描述
通过如下命令可实现激活并切换环境的功能,不同系统上的命令有所区别。

# windows
conda activate myenv
# Linux/Unix
source activate myenv

在这里插入图片描述

如果不切换环境,而只是退出当前环境,可以用 conda deactivate 退出当前的 conda 环境。

3.2.2 下载(卸载)库

当我们要在不同环境下安装库时,需要先切换到指定环境当中,例如我们要下载或者卸载 scipy,可以执行如下命令进行:

# 下载安装
conda install scipy
# 卸载
conda remove scipy

3.2.3 导出(导入)环境

当我们想要保存某个环境的配置信息,例如下载源信息、环境的Python版本信息、安装的包的版本信息等,可以先切换到指定环境下,通过以下命令将这些配置信息导出:

conda env export > environment.yml

该命令会将当前的环境配置信息导出到为 environment.yml 配置信息文件,文件导出地址默认为当前工作目录(也可以指定输出的绝对地址)。这时候,我们将配置文件传到另一台电脑,想基于该配置文件创建 conda 环境,可以通过以下命令:

conda env create -f environment.yml

3.3 试运行 py 文件

这里我们写一个名为 test.py 的简单的 python 脚本,但用到需要额外安装的 numpy 库,代码如下:

import numpy as np

array = np.random.rand(10)
mean = np.mean(array)
print(mean)

将该脚本文件放到控制台的工作目录下(或者把控制台工作目录切换到脚本文件的位置),输入如下命令:

python test.py

在这里插入图片描述

至此,关于 conda 的常见入门知识就介绍完毕,大家可以先养成使用 conda 的习惯,再去慢慢体会它的优点,非常实用的技能。


  1. conda无法访问清华源: https://blog.csdn.net/baidu_36602427/article/details/90317228 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1667889.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sping源码(七)—ConfigurationClassPostProcessor ——@PropertySources解析

序言 先来简单回顾一下ConfigurationClassPostProcessor大致的一个处理流程,再来详细的讲解PropertySources注解的处理逻辑。 详细的步骤可参考ConfigurationClassPostProcessor这篇帖子。 流程图 从获取所有BeanDefinition -> 过滤、赋值、遍历 -> 解析 -&…

常用的简单友好的工单系统(免费)- WGCAT

最近在项目中,有工单系统的需求场景,所以想寻找一款轻量简单的运维工单软件,主要用来记录和处理工作中的一些故障、维护,主要用来记录设备的维护状态,包括服务器、主机、交换机那些 WGCAT,是一款简单轻量的…

2024中国(重庆)人工智能展览会8月举办

2024中国(重庆)人工智能展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 【报名I59交易会 2351交易会 9466】 展会背景: 2024中国航空科普大会暨第八届全国青少年无人机大赛在…

macOS12安装 php8.1和apache

1. 安装php 8.1 macOS12不再自带php brew tap shivammathur/php 查看可安装版本 brew search php 安装指定版本 brew install php8.1 环境配置 vim ~/.zshrc export PATH"/usr/local/opt/php8.1/bin:$PATH" export PATH"/usr/local/opt/php8.1/sbin:$PAT…

Git Bash和Git GUI设置中文的方法

0 前言 Git是一个分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。一般默认语言为英文,本文介绍修改Git Bash和Git GUI语言为中文的方法。 1 Git Bash设置中文方法 (1)鼠标右键,单击“Git B…

每日两题 / 108. 将有序数组转换为二叉搜索树 543. 二叉树的直径(LeetCode热题100)

108. 将有序数组转换为二叉搜索树 - 力扣(LeetCode) 每次将数组对半分,数组的中点作为树的节点 先选择整个数组的中点作为根节点,然后选择对半分后的两个子数组的中点作为根节点的左右节点… /*** Definition for a binary tre…

【操作系统期末速成】​内存管理|内存的装入模块在装入内存的方式|分配管理方式|页面置换算法|页面置换

🎥 个人主页:深鱼~🔥收录专栏:操作系统🌄欢迎 👍点赞✍评论⭐收藏 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到…

Django开发实战之定制管理后台界面及知识梳理(上)

不知道不觉写博客已经半个月了,涨了164个粉丝,在一边分享笔记的过程,一边收获粉丝,感觉很开心也很幸福,希望看我博客的小伙伴都能有所收获,大家共同成长进步,好拉,话不多说&#xff…

hcip实验6:BGP综合实验

实验拓扑: 实验配置: ip地址配置: #R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24 [R1-GigabitEthernet0/0/0]int l0 [R1-LoopBack0]ip add 172.16.0.1 32 [R1-LoopBack0]int l1 [R1-LoopBack1]ip add 192.168.1.1 24#R2…

回归预测 | Matlab实现GA-LSSVM遗传算法优化最小二乘支持向量机多输入单输出回归预测

回归预测 | Matlab实现GA-LSSVM遗传算法优化最小二乘支持向量机多输入单输出回归预测 目录 回归预测 | Matlab实现GA-LSSVM遗传算法优化最小二乘支持向量机多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现GA-LSSVM遗传算法优化最小…

【RAG论文】RAG中半结构化数据的解析和向量化方法

论文简介 论文题目: 《A Method for Parsing and Vectorization of Semi-structured Data used in Retrieval Augmented Generation》 论文链接: https://arxiv.org/abs/2405.03989 代码: https://github.com/linancn/TianGong-AI-Unstructure/tree/m…

阮怀俊参与五龙乡黄沙村村企联办“强村公司”

为走好海岛县高质量发展共同富裕特色之路,探索村级集体经济发展新路径、扶持新模式、运行新机制,嵊泗县五龙乡黄沙村股份经济合作社与杭州山舍乡建乡村产业发展有限责任公司联办成“强村公司”。 创始人阮怀俊表示,双方就融合乡域发展和文旅产…

Linux 操作系统MySQL 数据库1

1.MySQL 数据库 数据库是“按照数据结构来组织、 存储和管理数据的仓库”。 是一个长期存储在计算机内的、 有组织的、 可共享的、 统一管理的大量数据的集合。 它的存储空间很大, 可以存放百万条、 千万条、 上亿条数据。 但是数据库并不是随意地将数据进行…

python如何单步调试

Python怎么单步调试?下面给大家介绍一下单步调试: 方法一:执行 python -m pdb myscript.py (Pdb) 会自己主动停在第一行。等待调试,这时你能够看看帮助。 方法二:在所调试程序的开头中:import pdb 并在你…

MySQL中逗号分隔字段查询方法

MySQL中逗号分隔字段查询 select * FROM th_work_gand_up where FIND_IN_SET(11,lane_code) ; select * from th_work_gand_up where lane_code regexp (^|,)(11|1)(,|$);

金融业开源软件应用 管理指南

金融业开源软件应用 管理指南 1 范围 本文件提供了金融机构在应用开源软件时的全流程管理指南,对开源软件的使用和管理提供了配套 组织架构、配套管理规章制度、生命周期流程管理、风险管理、存量管理、工具化管理等方面的指导。 本文件适用于金融机构规范自身对开…

HDFS- DataNode磁盘扩缩容

HDFS- DataNode磁盘扩缩容 背景: 缩减/增加节点磁盘 方案介绍: 采用hdfs dfsadmin -reconfig 动态刷新配置实现,不停服扩缩容。 注意事项: 请在进行缩容之前,务必了解实际的数据量,并确保磁盘有足够的空间来容纳这些数据。还需要考虑未来的使用需求,要预留一定数量的空间…

Jboss 反序列化 CVE-2017-12149

一、漏洞简介 JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。在/invoker/readonly路径下,攻击者可以构造序列化代码传入服务器进行反序列化,由于没有对反序列化操作进行任何检测,导致攻击者可以执行任意代码。 而jbo…

chmod -R 777 / 抢救,看这篇就够了

chmod -R 777抢救全过程记录 背景 在两台Ubuntu 20.04的服务器上错误执行了chmod -R 777 /命令,结果非常酸爽,sudo权限失效,而且ssh也没有用了。在经过了10多个小时的踩坑以后最后在不重装系统的情况下解决了问题,以下记录只记录…

C++ requires关键字简介

requires 是 C20 中引入的一个新关键字,用于在函数模板或类模板中声明所需的一组语义要求,它可以用来限制模板参数,类似于 typename 和 class 关键字。 requires关键字常与type_traits头文件下类型检查函数匹配使用,当requires后…