如果你经常在Windows上折腾Python环境,肯定遇到过这些糟心事:Anaconda安装包巨大无比,conda命令慢得像蜗牛,不同项目之间的依赖冲突让人抓狂。Micromamba就是来解决这些痛点的——它只有单个exe文件,下载即用;速度比conda快5-10倍;完全兼容conda的包管理生态。
我去年接手一个机器学习项目时,团队里有人的环境死活配不起来。后来我们把conda换成micromamba后,新成员的环境配置时间从2小时缩短到10分钟。这个经历让我彻底成了micromamba的死忠粉。
打开PowerShell(不是CMD!),依次执行以下命令:
powershell复制# 创建专用目录
mkdir -Force ~/micromamba | Out-Null
# 下载最新版(注意替换win-64为你的系统架构)
Invoke-WebRequest -URI "https://micro.mamba.pm/api/micromamba/win-64/latest" -OutFile ~/micromamba/micromamba.tar.bz2
# 解压(需要7z或WinRAR)
tar xf ~/micromamba/micromamba.tar.bz2 -C ~/micromamba
解压后你会在~/micromamba/Library/bin下看到唯一的可执行文件micromamba.exe。我习惯把它单独复制到~/micromamba根目录,这样路径更简洁。
Windows默认会阻止ps1脚本执行,我们需要放宽策略:
powershell复制# 以管理员身份运行PowerShell后执行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
这里有个坑:有些公司电脑的组策略会锁死这个设置。如果遇到这种情况,可以尝试改用-Scope Process参数临时生效。
关键命令就这一条:
powershell复制~/micromamba/micromamba.exe shell init -s powershell -p ~/micromamba
这会在你的PowerShell配置文件中写入初始化代码。用记事本打开$PROFILE文件(通常是Documents\WindowsPowerShell\profile.ps1),你会看到类似这样的内容:
powershell复制#region mamba初始化
$Env:MAMBA_ROOT_PREFIX = "C:\Users\你的用户名\micromamba"
$Env:MAMBA_EXE = "C:\Users\你的用户名\micromamba\micromamba.exe"
(& $Env:MAMBA_EXE 'shell' 'hook' -s 'powershell' -p $Env:MAMBA_ROOT_PREFIX) | Out-String | Invoke-Expression
#endregion
我推荐在profile.ps1中添加这些实用配置:
powershell复制# 缩短提示符前缀(避免路径太长)
function prompt { "PS $($executionContext.SessionState.Path.CurrentLocation)$('>' * ($nestedPromptLevel + 1)) " }
# 常用别名
Set-Alias mamba micromamba
Set-Alias conda micromamba # 兼容conda命令
关闭所有PowerShell窗口重新打开,输入:
powershell复制micromamba --version
如果看到版本号(比如1.5.1),恭喜你成功了!如果报错,试试这些排查步骤:
$PROFILE文件是否存在$Env:MAMBA_EXE路径正确在VSCode设置中(JSON模式)添加:
json复制{
"python.venvFolders": [
"~/micromamba/envs"
],
"python.condaPath": "~/micromamba/micromamba.exe"
}
由于VSCode会硬编码调用conda命令,我们需要在profile.ps1中添加:
powershell复制Set-Alias -Name conda -Value micromamba -Option AllScope
实测发现有些VSCode扩展会检查conda是否存在,这个技巧能完美骗过它们。
创建~/.mambarc文件写入:
yaml复制channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- defaults
| 操作 | conda命令 | micromamba等效命令 | 速度对比 |
|---|---|---|---|
| 创建环境 | conda create -n py39 |
mamba create -n py39 |
快3x |
| 安装包 | conda install numpy |
mamba install numpy |
快5x |
| 更新所有包 | conda update --all |
mamba update --all |
快8x |
powershell复制# 导出环境
micromamba env export -n myenv > environment.yml
# 精确还原环境(包括pip安装的包)
micromamba env create -f environment.yml
我在团队协作中常用这个方法保证所有人的环境完全一致,再也没出现过"在我机器上能跑"的问题。
假设要同时安装Python3.8和3.10:
powershell复制micromamba create -n py38 python=3.8
micromamba create -n py310 python=3.10
切换环境只需:
powershell复制micromamba activate py310
有个实用技巧:在项目根目录放个micromamba.ps1文件,内容为micromamba activate 环境名。这样进入目录时双击脚本就能自动切换环境。