[Python] Miniforge: 开源版conda环境管理器

0 序:背景

  • Conda、Miniconda和Anaconda是否免费且开源?

均部分或完全从属于 Anaconda Inc 公司,直接商用,均有风险。

  • conda 环境管理器,是否有开源版本?

Conda 是一个开源的包和环境管理系统,可以用于 Windows、macOS 和 Linux 上的任何编程语言的打包和分发,包括 Python、R、Ruby、Lua 等。
此外,还有两个与 Conda 紧密相关的开源项目,它们是 MiniforgeMamba

1 概述:Miniforge

  • 此存储库包含Conda forge特有的CondaMamba的最小安装程序,并预先配置了以下功能:
  • 基础环境中的包是从conda forge通道获得的。
  • conda forge通道被设置为默认(也是唯一)通道。

https://github.com/conda-forge/miniforge

2 安装

安装 on Windows

Step1 下载安装包

下载适用于 Windows 的安装包:Miniforge3-Windows-x86_64.exe

  • url

https://github.com/conda-forge/miniforge/releases
https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-Windows-x86_64.exe
Miniforge3-24.11.2-1-Windows-x86_64.exe - github

Step2 运行安装程序

  • 双击下载的 .exe 文件启动安装程序。

  • 按照安装向导的指引进行安装,选择合适的安装目录。

D:\Program\Miniforge3

  • 在安装完成时勾选“Add Miniforge3 to PATH”选项。

Step3 配置环境变量

  • MINIFORGE_HOME
D:\Program\Miniforge3\

  • Path: 追加
%MINIFORGE_HOME%\condabin

Step4 启动 Miniforge,并验证、激活指定环境

  • 安装完成后,你可以打开 Anaconda Prompt 或使用 Windows CMD / Windows PowerShell,输入以下命令来测试安装是否成功:
C:\Users\XXX> conda --version
conda 24.11.0
  • 查看已经安装的频道
# 设置显示已经安装的频道
C:\Users\XXX> conda config --set show_channel_urls yes

# 查看已安装的频道
C:\Users\XXX> conda config --get channels
--add channels 'conda-forge'   # lowest priority
  • 查看环境列表
> conda env list
# conda environments:
#
base                   D:\Program\Miniforge3

> conda info --env
# conda environments:
#
base                   D:\Program\Miniforge3
  • 激活 base 的python环境
C:\Users\XXX> conda activate base

(base) C:\Users\XXX> python
Python 3.12.8 | packaged by conda-forge | (main, Dec  5 2024, 14:06:27) [MSC v.1942 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("hello")
hello
>>> quit();
Use quit() or Ctrl-Z plus Return to exit
(base) C:\Users\XXX>
  • 查看指定环境下用conda安装的软件
conda list -n base 
  • 如果你不希望每次启动终端时自动激活 base 环境,可以禁用这个行为。你可以通过运行以下命令来关闭自动激活
> conda config --set auto_activate_base false

> conda config --get auto_activate_base
--set auto_activate_base False

关闭自动激活后,你仍然可以手动激活 base 环境或任何其他虚拟环境,命令如下:

conda activate base

FAQ for 安装遇到的问题及解决办法

Q:出现 zsh: command not found: conda 错误

  • 原因分析

说明 conda 命令没有被正确地添加到你的 PATH 环境变量中,或者 Miniforge 的安装没有成功激活。

  • step1 确保 conda 已安装

如果你刚安装了 Miniforge,请确保安装过程没有错误。检查 Miniforge 是否正确安装:
打开终端,导航到 Miniforge 安装的目录(默认通常是 ~/.miniforge3 或者 ~/miniforge3安装根目录/condabin)。

在该目录下,检查是否有 conda 二进制文件:bin/conda

## Linux
cd ~/miniforge3/bin && ls

## Windows
dir D:\Program\Miniforge3\condabin

如果 conda 文件存在,说明 Miniforge 已安装,但未正确配置环境

  • step2 手动激活 conda 环境

如果安装了 Miniforge,可能是 conda 没有自动添加到 zsh 的启动配置文件里(如 .zshrc)。
你可以手动加载 Miniforge 的初始化脚本:

临时激活 conda

在终端执行以下命令来临时激活 conda:

# linux
source ~/miniforge3/bin/activate

之后尝试运行 conda --version

永久配置 conda 自动激活

如果上面的命令生效了,你可以把 Miniforge 的路径永久添加到你的 .zshrc 文件中:
打开 .zshrc 文件:

nano ~/.zshrc

在文件末尾添加以下内容,确保 conda 的初始化脚本被加载:

export PATH="~/miniforge3/bin:$PATH"

保存文件并退出(按 Ctrl + O 保存,Ctrl + X 退出)。
重新加载 .zshrc 文件,或者关闭并重新打开终端:

source ~/.zshrc
  • step3 确认 conda 已被正确安装

再次检查 condaconda -V(同conda --version)

  • step4 重新安装 Miniforge

如果问题依旧存在,可能安装过程中出现了问题,建议重新安装 Miniforge。
先删除之前的安装目录:

rm -rf ~/miniforge3

安装 on Linux

Step1 下载一键式安装脚本

  • 根据 CPU 指令集架构,下载对应的 Linux 安装脚本
INSTALL_LOCATION="/ext/softwares"
mkdir -p $INSTALL_LOCATION
cd $INSTALL_LOCATION

wget https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-Linux-x86_64.sh
或 wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh

chmod +x Miniforge3-25.3.1-0-Linux-x86_64.sh

Step2 执行安装脚本

cd $INSTALL_LOCATION
./Miniforge3-25.3.1-0-Linux-x86_64.sh

安装脚本会有系列提示与交互操作:

...
>>> <Enter键>

Do you accept the license terms? [yes|no]
>>> yes

Miniforge3 will now be installed into this location:
/root/miniforge3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/root/miniforge3] >>> /ext/miniforge3

即:安装过程中,可自己指定安装位置: /ext/miniforge3

...

installation finished.
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
   run the following command when conda is activated:

conda config --set auto_activate_base false

You can undo this by running `conda init --reverse $SHELL`? [yes|no] (您可以通过运行“conda init --reverse $SHELL”来撤消此操作吗?)
[no] >>> no

You have chosen to not have conda modify your shell scripts at all.
To activate conda's base environment in your current shell session:

eval "$(/ext/miniforge3/bin/conda shell.YOUR_SHELL_NAME hook)" 

To install conda's shell functions for easier access, first activate, then:

conda init

Thank you for installing Miniforge3!

Step3 配置环境变量

  • vim ~/.bashrc

追加环境变量的配置行:

export PATH=$PATH:/ext/miniforge3/bin
``

+ 使其生效
```shell
source ~/.bashrc

Step4 conda 初始化

为了避免后续创建虚拟环境后,出现报 conda 初始化 的错误:

...

[root@xxx ~]# conda create --name ai-env python=3.12

[root@xxx ~]# conda activate ai-env
CondaError: Run 'conda init' before 'conda activate'

需要做 conda 的初始化操作:

  • 执行conda初始化的命令:
[root@xxx ~]# conda init
no change     /ext/miniforge3/condabin/conda
no change     /ext/miniforge3/bin/conda
no change     /ext/miniforge3/bin/conda-env
no change     /ext/miniforge3/bin/activate
no change     /ext/miniforge3/bin/deactivate
no change     /ext/miniforge3/etc/profile.d/conda.sh
no change     /ext/miniforge3/etc/fish/conf.d/conda.fish
no change     /ext/miniforge3/shell/condabin/Conda.psm1
no change     /ext/miniforge3/shell/condabin/conda-hook.ps1
no change     /ext/miniforge3/lib/python3.12/site-packages/xontrib/conda.xsh
no change     /ext/miniforge3/etc/profile.d/conda.csh
modified      /root/.bashrc

==> For changes to take effect, close and re-open your current shell. <==

[root@xxx ~]# 
  • 根据提示,新开1个窗口,初次体验 conda
(base) [root@xxx ~]# python --version
Python 3.12.11
(base) [root@xxx ~]# conda activate ai-env
(ai-env) [root@xxx ~]# python --version
Python 3.12.11

即 新窗口即默认切换到了 base 的 python conda 虚拟环境

Step5 验证 Miniforge Conda

[root@xxx softwares]# conda env list
# conda environments:
#
base                   /ext/miniforge3

Y 推荐文献

X 参考文献

Conda、Miniconda和Anaconda是否免费且开源?均部分或完全从属于 Anaconda Inc 公司,直接商用,均有风险。
Conda 是一个开源的包和环境管理系统,可以用于 Windows、macOS 和 Linux 上的任何编程语言的打包和分发,包括 Python、R、Ruby、Lua 等。此外,还有两个与 Conda 紧密相关的开源项目,它们是 MiniforgeMamba

PyCharm支持的4种Python Interpreter

posted @ 2024-12-29 14:58  千千寰宇  阅读(3870)  评论(0)    收藏  举报