使用 Miniforge3 管理 Python 环境的详细指南(基于最新实践和时效性信息,截至 2025 年)

使用 Miniforge3 管理 Python 环境的详细指南(基于最新实践和时效性信息,截至 2025 年)

以下是使用 Miniforge3 管理 Python 环境的详细指南(基于最新实践和时效性信息,截至 2025 年):


一、Miniforge3 简介

Miniforge3 是一个轻量级 Conda 环境管理工具,默认使用 conda-forge 软件源(社区维护的包更全且更新更快),尤其适配 ARM 架构(如 Apple M1/M2/M3 芯片)。相比 Anaconda,它更精简且兼容性更好。


二、安装步骤

1. 下载安装包

安装最新的 Mamba,建议通过安装 Miniforge 来实现,Miniforge 默认包含 Mamba

  • 推荐镜像源
    • 南京大学镜像站
    • 清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn/github-release/conda-forge/miniforge/)
  • 选择最新版本(如 Miniforge3-Linux-x86_64 / Miniforge3-Windows-x86_64.exe / Miniforge3-MacOSX-arm64
2. 安装
  • Windows:双击 .exe 文件,安装时勾选 “Add to PATH”(自动配置环境变量)。
  • macOS/Linux:终端执行:
bash Miniforge3-<系统架构>.sh 

安装过程中选择安装路径(建议默认),并同意初始化 Conda(输入 yes)。

3. 验证安装
conda --version# 输出版本号(如 conda 24.1.2) conda info # 查看环境信息

三、环境管理

1. 创建新环境
conda create -n my_env python=3.10# 创建名为 my_env 的 Python 3.10 环境 mamba create -n my_env pyhton=3.12# 替代conda(推荐)
2. 激活/退出环境

注意:PowerShell中使用mamba激活环境,使用conda即可;cmd中可正常使用mamba进行激活

conda activate my_env # 激活环境 conda deactivate # 退出当前环境# 亦可使用 mamba 替代# 注意:PowerShell中使用mamba激活环境,使用conda即可;cmd中可正常使用mamba进行激活 mamba activate my_env # 激活环境 mamba deactivate # 退出当前环境
3. 删除环境
conda remove -n my_env --all

四、包管理

1. 安装包
conda install numpy # 从 conda-forge 安装 pip install package # 或用 pip(当 conda 源无此包时)
2. 使用 Mamba 加速(推荐)
Why and How 使用Mamba?-> 使用 Mamba 管理 Python 环境

Mamba 是 Conda 的快速替代工具:

conda install mamba -n base -c conda-forge # 先安装 mamba install tensorflow # 替代 conda install

五、镜像配置(加速下载)

1. 配置清华镜像和默认创建的新环境的路径

Mamba 设置镜像源:清华镜像源

编辑 C:\Users\<UserName>\.condarc 文件,复制网站内的指定内容添加进去:

channels:- defaults show_channel_urls:truedefault_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud 

例如,我的文件内容:

channels:- defaults show_channel_urls:truedefault_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud envs_dirs:- D:\Miniforge3\envs 

六、常见问题

1. Conda 命令失效
  • 原因:环境变量未正确配置。
  • 解决:重新初始化:
~/miniforge3/bin/conda init zsh# 根据 Shell 类型(bash/zsh)
2. 兼容性问题
  • ARM 设备(如 M1 Mac):必须使用 Miniforge3-MacOSX-arm64 版本,避免混合 x86 和 ARM 包。
  • 旧 Anaconda 冲突:卸载 Anaconda 后再安装 Miniforge3。

七、注意事项

  1. 避免修改 base 环境:新建独立环境进行操作,防止核心依赖损坏。
  2. 环境迁移
conda envexport> environment.yml # 导出环境配置 conda env create -f environment.yml # 在新机器上重建环境

时效性提示:以上内容基于 2025 年最新实践,若安装包版本更新,请以 Miniforge 官方文档 为准。

Read more

【C++高阶系列】:线程库和多线程

【C++高阶系列】:线程库和多线程

🔥 本文专栏:c++ 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 选择决定了方向,勇气决定了能走多远。没有勇气的选择是纸上蓝图,没有选择的勇气是迷失的航船。 ★★★ 本文前置知识: 线程(上) 线程(下) 引入 在上一篇文章中,我们详细介绍了在 Linux 平台下如何进行线程管理,包括线程的创建、等待与退出等操作。具体而言,主要是通过调用 Linux 原生 pthread 线程库提供的接口,例如 pthread_create 和pthread_join 等。 需要注意的是,pthread 线程库所提供的接口遵循 POSIX 标准,因此主要适用于 Linux 及其他类 Unix 系统,例如 Unix 和 macOS。然而,在 Windows

By Ne0inhk
【C++:C++11】C++11新特性深度解析:从可变参数模板到Lambda表达式

【C++:C++11】C++11新特性深度解析:从可变参数模板到Lambda表达式

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 🎬 艾莉丝的C++专栏简介: 文章目录 * C++学习阶段的三个参考文档 * 4 ~> 可变参数模版 * 4.5 emplace系列接口 * 4.5.1 不同容器emplace系列接口展示 * 4.5.2 浅谈emplace系列接口概念 * 4.5.3 emplace系列接口在list.h文件中的使用 * 4.5.4 emplace系列接口在Test.cpp文件中的使用 * 4.

By Ne0inhk
【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析

【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析

文章目录 * 实现线程池 * ThreadPool类设计 * 构造函数 * Start接口 * 线程池接入日志 * 初步实现源码及效果图 * 总结代码执行逻辑 * 实现回调函数Routine * enqueue接口实现 * 线程池退出stop接口优化 * 线程池源码 * 线程安全和重入问题 * 结论 * 死锁 * 死锁四个必要条件 * 避免死锁 * STL、智能指针和线程安全 实现线程池 我们之前已经接触了进程池,其实线程池和进程池核心思路差不多,对于线程池来说,会有一个任务队列和若干线程,用户往任务队列里添加任务,若干线程在任务队列里拿任务并完成。 ThreadPool类设计 构造函数 对于线程来说,启动线程池分为两步: 1.先创建线程本身(Thread类对象)2.再启动线程(调用Thread的start接口) 所以在构造函数我们要先创建线程本身(thread t(回调函数,线程名)),创建线程需要传递回调函数(假设是hello)和线程名,但这里有一个问题,一般来说传递的

By Ne0inhk
面试官问 C++ 多态?虚函数重写 + 虚表指针 + 动态绑定,核心考点全覆盖

面试官问 C++ 多态?虚函数重写 + 虚表指针 + 动态绑定,核心考点全覆盖

✨ 孤廖:个人主页 🎯 个人专栏:《C++:从代码到机器》 🎯 个人专栏:《Linux系统探幽:从入门到内核》 🎯 个人专栏:《算法磨剑:用C++思考的艺术》 折而不挠,中不为下 文章目录 * 正文: * 1. 多态的概念 * 2. 多态的定义及实现 * 2.1 虚函数 * 2.2 虚函数的重写/覆盖 * 2.3 虚函数重写的⼀些其他问题 * 2.4 override 和 final关键字 * 2.5 重载/重写/隐藏的对⽐ * 3. 纯虚函数和抽象类 * 4. 多态的原理 * 4.1 多态是如何实现的 * 4.2

By Ne0inhk