Python使用虚拟环境Conda的安装使用教学

1️⃣ Python 常用的环境

以下是对 Python 中使用的 venv、conda、pipenv、poetry 等环境的分析,包括它们的应用场景、优势(性能、CPU处理、代码移植等方面)、使用难度等方面的介绍:

环境工具应用场景优势(性能、CPU处理、代码移植)使用难度
venv适用于简单的Python项目,需要隔离项目依赖以避免冲突- 轻量级,易于创建和销毁
- 独立的Python环境,避免库版本冲突
- 支持跨平台(Linux、Windows、MacOS)
- 代码移植性好,环境一致性高
较低,Python自带,无需额外安装
conda适用于复杂的数据科学和科学计算项目,需要管理多种语言和库。- 强大的包和环境管理能力
- 支持多种语言和库(不仅限于Python)
- 易于安装和管理二进制包,无需编译
- 优秀的环境隔离和版本控制
- 高性能计算支持(如MPI)
中等,需要单独安装conda管理器 Anacoda 官网
pipenv适用于需要自动化虚拟环境管理和依赖管理的Python项目- 自动化创建和管理虚拟环境
- 基于Pipfile和Pipfile.lock进行依赖管理,确保一致性
- 支持requirements.txt文件的自动生成和更新
- 提供命令行工具简化操作
较低,易于上手,但比venv稍复杂
poetry适用于需要更现代化、一体化项目管理解决方案的Python项目- 依赖管理更精确,支持版本约束和依赖解析
- 自动创建和管理虚拟环境
- 提供构建、打包和发布项目的命令
- 强调“诗意编程”,组织项目更加优雅和简洁
中等,需要单独安装,但提供了丰富的文档和社区支持

分析说明

1、venv:(Virtual Environment)
应用场景:适合初学者和小型项目,因为它简单且易于使用。
优势:轻量级且跨平台,非常适合快速创建独立的Python环境来避免库版本冲突。
使用难度:非常低,因为它是Python 3.3 及以上版本的内置模块,无需额外安装。

2、conda

  • 应用场景:特别适合数据科学和科学计算领域,因为它能管理多种语言和库,且支持高性能计算。
  • 优势:强大的包和环境管理能力,以及支持二进制包的直接安装,大大简化了依赖管理过程。
  • 使用难度:中等,因为需要单独安装 conda 管理器,但一旦安装,其强大的功能可以显著提高开发效率。

3、pipenv

  • 应用场景:适用于需要自动化虚拟环境管理和依赖管理的项目。
  • 优势:通过 Pipfile 和 Pipfile.lock 文件,提供了更加智能和可靠的依赖管理方式,同时简化了虚拟环境的创建和管理过程。
  • 使用难度:较低,但比 venv 稍复杂,因为它需要单独安装 pipenv 包。
4、pipenv
  • 应用场景:适用于需要更现代化、一体化项目管理解决方案的项目,特别是那些需要频繁发布和严格版本控制的项目。
  • 优势:提供了更精确和强大的依赖管理能力,以及构建、打包和发布项目的命令,使得项目管理更加简化和高效。
  • 使用难度:中等,需要单独安装,但提供了丰富的文档和社区支持,使得学习和使用相对容易。


2️⃣ 安装 Conda

一、安装 Conda

首先,你需要安装 Anaconda 或 Miniconda,它们都包含了 conda 包管理器以及基础的科学计算库。选择其中一个:

Anaconda:包含了大量的科学计算、数据分析相关的库(如 numpy、pandas 等),适合数据科学和机器学习项目,下载大小较大。
Miniconda:一个轻量级版本,它只包含了 Conda 和 Python,没有预装其他科学计算包。用户可以通过 Conda 安装所需的包,这使得 Miniconda 成为那些只需要基础环境或希望自定义安装包的用户的理想选择。
Bioconda: 是 一个 Conda 频道,专注于生物信息学相关的软件包。它提供了一个集中的地方来安装、更新和分发生物信息学工具,这些工具通常很难通过标准的包管理器获得。Bioconda 使得生物信息学研究人员能够轻松地管理和安装他们需要的软件包。不是一个独立的发行版,而是一个 Conda 频道。因此,它没有单独的下载链接。用户需要在安装 Anaconda 或 Miniconda 后,通过添加 Bioconda 频道来访问其提供的软件包。

访问以下网址下载对应操作系统的安装包:

Anaconda: 
	https://www.anaconda.com/products/distribution
Miniconda: 
	https://docs.conda.io/en/latest/miniconda.html
	https://docs.anaconda.com/miniconda/
下载后,按照安装向导进行安装,确保在安装过程中勾选将conda添加到系统PATH(默认通常会勾选)。
检查是否安装成功
完场上述步骤之后,需要再检查下 conda 是否能够正常使用。在电脑左下角搜索找到 Anaconda Prompt,点击打开后,在控制台中输入 conda --version,回车如果返回了 conda 版本信息则说明安装成功。

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


二、Conda中的几个重要目录 envs、pkgs

1. pkgs文件夹:

  • 位置: C:\Users\[userName]\.conda\pkgs
  • 内容:pkgs文件夹包含了通过conda安装的软件包。这些软件包以压缩包的形式存在,并且每个包都驻留在与其规范名称相对应的子目录中。此外,这个文件夹还用于下载、存放缓存,以及提取下载的conda包。【通常有几个G、管理该文件的方式见下文】
  • 作用
    (1) 存储和缓存:作为conda包的存储和缓存仓库,pkgs文件夹使得conda能够高效地管理和访问已下载的软件包。
    (2) 环境构建加速:在构建虚拟环境(envs)时,conda会通过硬盘链接将包的依赖链接到pkgs目录,从而加快虚拟环境的生成速度,并减少占用的空间。

2. envs文件夹:

  • 位置: C:\Users\[userName]\.conda\envs
  • 内容:envs文件夹包含了通过conda创建的虚拟环境。每个虚拟环境都是一个独立的目录,其中包含了该环境特有的Python解释器、库文件、环境变量等。这些虚拟环境允许用户在不同的项目中使用不同版本的Python和库,而不会产生冲突。
  • 作用
    (1) 隔离环境:通过创建虚拟环境,conda能够确保每个项目都使用其所需的特定版本的Python和库,从而避免了不同项目之间的依赖冲突。
    (2) 灵活切换:用户可以轻松地创建、删除、激活和停用不同的虚拟环境,以适应不同的开发需求。

三、pkgs 文件的管理

由于pkgs文件夹内容过大,可以采取以下几种方法来清除一些内容,以释放磁盘空间:

1. 使用 conda clean 命令

conda clean命令是conda提供的一个工具,用于清理不再需要的包和缓存文件。对于pkgs文件夹,可以使用以下命令:
  • 用cmd终端清理未使用的包:
conda clean --packages
:: 或
conda clean -p

这个命令会删除那些不再被任何环境引用的包。

  • 用cmd终端清理所有缓存(包括包和索引缓存):
conda clean --all
rem 或
conda clean -a

这个命令比较强力,会删除所有缓存,包括pkgs文件夹中的包以及conda的索引缓存等。但请注意,在使用此命令之前,请确保没有其他环境依赖于这些可能被删除的包版本。

2. 手动删除
虽然不推荐,但也可以手动删除pkgs文件夹中的某些包。然而,这种方法风险较高,因为如果不小心删除了正在使用的包,可能会导致环境损坏或无法正常工作。因此,在手动删除之前,请务必确认这些包确实不再需要。
注意事项
  • 在执行清理操作之前,建议备份重要数据,以防万一。
  • 如果不确定某个包是否还在使用,可以先使用conda list命令查看当前环境中已安装的包,以及它们的来源(是否来自pkgs文件夹)。
  • 清理pkgs文件夹后,再次安装或更新包时,conda会重新下载所需的包到pkgs文件夹中。


3️⃣ Conda 使用教学

1. 查看 Conda 自带库
	conda list

在这里插入图片描述


2. 创建、删除 Conda 虚拟环境
在命令行中,使用以下命令创建一个名为 .env 的新虚拟环境,指定Python版本(例如Python 3.10)、需要的第三方库:
  • 先选择一个工作目录(注意环境与工作目录的区别,下文有讲解),比如,
D:\GitHubP\gratis\manim
  • 执行下面的语句
cd /d D:\GitHubP\gratis\manim
conda create --name myenv python=3.10 numpy matplotlib

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

在这里插入图片描述

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

3. 激活、关闭Conda虚拟环境

激活创建好的虚拟环境:

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

退出创建好的虚拟环境:

conda deactivate

在这里插入图片描述

激活后,命令行提示符会显示当前活动环境的名称(如(myenv)),表示你现在处于该虚拟环境中。


4. 安装、删除 Python 包

在激活的环境中,使用condapip安装所需的 Python 包。例如,安装 numpypandas

conda install numpy pandas

或者使用pip(在conda环境中,pip会与conda兼容):

pip install numpy pandas

当我们要在不同环境下安装库时,需要先切换到指定环境当中

  • 删除 numpy 和 pandas 库,可以执行如下命令进行:
conda remove numpy pandas

5. Conda环境下,运行 demo.py

这里我们写一个名为 demo.py 的简单模拟进度条的 python 脚本,但用到需要额外安装的 tqdm 库,代码如下:

python demo.py

在这里插入图片描述

补充:conda的三个位置:安装位置,环境位置、工作目录

1. Anaconda/Miniconda 安装目录

默认位置:在Windows系统中,Anaconda或Miniconda通常会默认安装到 C:\ProgramData\Anaconda3C:\Program Files\Anaconda3 等目录(具体取决于安装时的选择)。这个目录包含了Anaconda或Miniconda的基础文件和库。
自定义位置:用户也可以在安装过程中选择将Anaconda/Miniconda安装到系统的其他位置。

2. Conda 环境和包存储位置

默认环境目录:Conda默认会在用户的主目录下的.conda文件夹中创建环境。例如,在Windows系统中,这通常是C:\Users\username.conda\envs目录,其中username是用户的用户名。
包存储位置:Conda安装包时,默认会使用用户目录下的.conda\pkgs目录来存储下载的包。这些包在创建环境时会被用来安装依赖项。

3. 修改默认工作目录

用户可以通过以下方式修改Conda的默认工作目录:
修改配置文件:通过运行conda config --add envs_dirs /path/to/your/envs命令,可以将新的目录添加到Conda的环境目录列表中。这里,/path/to/your/envs应该替换为你希望Conda在其中创建环境的目录路径。
在创建环境时指定路径:使用conda create --prefix /path/to/your/env/myenv命令可以在创建环境时直接指定环境的存放位置。这里,/path/to/your/env是存放新环境的目录路径,myenv是环境名称。
在删除环境时指定路径:使用conda env remove --prefix D:\GitHubP\gratis\manim\.conda命令可以在删除环境时直接指定环境的存放位置。这个命令会删除位于 D:\GitHubP\gratis\manim\.conda 的整个 Conda 环境。

# 指定环境创建,不能写环境名称
conda create --prefix /path/to/your/env/myenv python=3.10
# 指定环境删除
conda env remove --prefix D:\GitHubP\gratis\manim\.conda

4. 注意事项

在修改Conda的工作目录时,请确保新的目录路径是可访问的,并且有足够的空间来存储环境和包。
如果已经将Conda环境或包存储到了系统盘(如C盘),并且希望节省空间,可以考虑将它们移动到其他磁盘上。这通常涉及复制.conda目录到新的位置,并更新环境变量以指向新的位置。

注: conda 环境位置与项目的位置一般不同,两者分离开来 ☆☆☆☆。
在conda环境中编写代码的位置,即工作目录,并不是由conda直接指定的,而是由你使用的开发环境或编辑器在启动或打开项目时设置的。工作目录是你在其中编写、保存和运行代码的文件夹。以下是一些关于如何设置和识别工作目录的要点:

1. 命令行(终端)

当你在命令行(如CMD、PowerShell、bash等)中工作时,你的当前工作目录是你在命令行中输入命令时所在的文件夹。你可以使用cd命令(在Windows和Unix-like系统中都有效)来改变当前工作目录。例如,在Windows中,你可以使用 cd C:\path\to\your\project 来更改工作目录到你的项目文件夹。
在conda环境中,当你激活了一个特定的环境后,你可以在该环境中运行Python脚本或Jupyter Notebook等,但工作目录仍然是你在命令行中设置的当前目录。

2. 集成开发环境(IDE)

如果你使用IDE(如PyCharm、VS Code等)来编写代码,IDE通常会让你在启动时或打开项目时选择工作目录。这个工作目录通常是你的项目文件夹,但你可以根据需要在IDE的设置中更改它。
在IDE中,你可以通过查看IDE的文件浏览器或项目资源管理器来识别当前的工作目录。此外,IDE的终端或命令行界面通常也会继承IDE的工作目录作为当前工作目录。

6. 管理Conda环境

除了创建和激活环境,conda还提供了丰富的环境管理功能:

  • 一、列出所有环境:
conda env list
  • 二、删除环境
conda remove --name myenv --all
  • 三、克隆环境:
conda create --name myenv_copy --clone myenv
  • 四、导出环境配置:
conda env export > environment.yml
  • 五、从配置文件创建环境:
conda env create -f environment.yml

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



附录. Conda 配置

  • 查看 Conda 配置信息
conda config --show
  • Conda换源
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 软件包通道的下载链接时能显示我们手动配置的通道地址,可以通过如下命令进行设置:

conda config --set show_channel_urls yes
  • 如果想要重置下载源的信息,可以用如下 命令实现:
 conda config --remove-key channels
  • 修改Connda配置文件

当然,除了通过命令行的形式添加下载源,也可以直接修改配置文件 .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 将会使用其中配置的下载源来获取软件包。


Sunset mountains and seas, mountains and seas deep meaning
🌌日落归山海,山海藏深意🪁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值