mise 完全安装与配置教程
一、什么是 mise?
mise(发音 "meese")是一个现代化的开发环境管理工具,支持 700+ 种工具(Python、Node.js、Go、Rust、Java 等)。它是 asdf 的 Rust 重写版,性能更快、功能更强,原生支持 Windows。
核心优势:
- 🚀 单文件二进制,零依赖
- 🪟 原生 Windows 支持(PowerShell/CMD/Git Bash)
- ⚡ 比 asdf 快 10-20 倍
- 🔧 内置任务运行器(替代 make/npm scripts)
- 📦 支持 asdf 插件生态 + aqua/ubi 等新后端
二、Windows 安装指南
2.1 安装方式(推荐 Scoop)
powershell
# 安装 mise
scoop install mise
# 验证安装
mise --version
其他方式:
powershell
# Winget
winget install jdx.mise
# Chocolatey(版本可能较旧)
choco install mise
# 手动安装
# 从 https://github.com/jdx/mise/releases 下载 windows-x64.zip
2.2 PowerShell 激活配置
编辑 PowerShell 配置文件:
powershell
# 打开配置文件
notepad $PROFILE
# 添加以下内容(PowerShell 5.1 用户)
$env:MISE_PWSH_CHPWD_WARNING = 0
mise activate pwsh | Out-String | Invoke-Expression
# 保存后重新加载
. $PROFILE
⚠️ 注意 :PowerShell 5.1 会提示
chpwd需要 PowerShell 7+,设置MISE_PWSH_CHPWD_WARNING=0可禁用警告。建议升级到 PowerShell 7。
三、目录配置(用户级 vs 系统级)
3.1 默认目录结构
| 类型 | 默认路径 | 说明 |
|---|---|---|
| 数据目录 | ~\AppData\Local\mise |
工具安装位置(大) |
| 配置目录 | ~\.config\mise |
配置文件(小) |
| 缓存目录 | ~\AppData\Local\Temp\mise |
下载缓存(中) |
| shims | ~\AppData\Local\mise\shims |
可执行文件代理 |
3.2 自定义目录(推荐 E 盘)
用户级配置(当前用户,无需管理员):
powershell
# 设置环境变量
[System.Environment]::SetEnvironmentVariable("MISE_DATA_DIR", "E:\Tools\mise\data", "User")
[System.Environment]::SetEnvironmentVariable("MISE_CACHE_DIR", "E:\Tools\mise\cache", "User")
# 可选:配置文件也迁移
[System.Environment]::SetEnvironmentVariable("MISE_CONFIG_DIR", "E:\Tools\mise\config", "User")
# 重启 PowerShell 验证
mise doctor
系统级配置(所有用户,需要管理员权限):
powershell
# 以管理员身份运行 PowerShell
[System.Environment]::SetEnvironmentVariable("MISE_DATA_DIR", "E:\Tools\mise\data", "Machine")
[System.Environment]::SetEnvironmentVariable("MISE_CACHE_DIR", "E:\Tools\mise\cache", "Machine")
3.3 配置对比
| 级别 | 命令 | 适用场景 | 权限要求 |
|---|---|---|---|
| User | "User" |
个人电脑,单用户使用 | 普通用户 |
| Machine | "Machine" |
服务器,多用户共享 | 管理员权限 |
💡 建议 :个人使用选 User 级别,避免权限问题。
四、完全移除 mise
4.1 卸载工具(保留 mise)
powershell
# 卸载特定版本
mise uninstall python@3.12
# 卸载某工具所有版本
mise uninstall --all python
# 卸载所有工具(谨慎!)
mise uninstall --all
4.2 完全删除 mise
步骤 1:删除环境变量
powershell
# 删除用户级变量
[System.Environment]::SetEnvironmentVariable("MISE_DATA_DIR", $null, "User")
[System.Environment]::SetEnvironmentVariable("MISE_CACHE_DIR", $null, "User")
[System.Environment]::SetEnvironmentVariable("MISE_CONFIG_DIR", $null, "User")
[System.Environment]::SetEnvironmentVariable("MISE_PWSH_CHPWD_WARNING", $null, "User")
# 如果设置了系统级,也要删除
[System.Environment]::SetEnvironmentVariable("MISE_DATA_DIR", $null, "Machine")
[System.Environment]::SetEnvironmentVariable("MISE_CACHE_DIR", $null, "Machine")
步骤 2:删除安装文件
powershell
# 删除 Scoop 安装的 mise
scoop uninstall mise
# 或手动删除数据目录
Remove-Item -Recurse -Force "E:\Tools\mise" # 自定义目录
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\mise" # 默认目录
Remove-Item -Recurse -Force "$env:USERPROFILE\.config\mise" # 配置
Remove-Item -Recurse -Force "$env:USERPROFILE\.local\share\mise" # 旧版数据
步骤 3:清理 PATH
powershell
# 从 PATH 中移除 mise shims
$path = [Environment]::GetEnvironmentVariable("Path", "User")
$newPath = ($path -split ";" | Where-Object { $_ -notmatch "mise" }) -join ";"
[Environment]::SetEnvironmentVariable("Path", $newPath, "User")
步骤 4:清理 PowerShell 配置
编辑 $PROFILE,删除以下行:
powershell
# 删除这些行
$env:MISE_PWSH_CHPWD_WARNING = 0
mise activate pwsh | Out-String | Invoke-Expression
五、Python 安装与卸载实战
5.1 安装 Python(全局)
powershell
# 查看可用版本
mise ls-remote python | findstr "3.12"
# 安装 Python 3.12 并设为全局默认
mise use --global python@3.12
# 安装多个版本
mise use --global python@3.11 python@3.12 python@3.13
# 设置全局默认版本(3.12)
mise use --global python@3.12
验证安装:
powershell
# 查看 Python 路径(应在 E:\Tools\mise\data)
(Get-Command python).Source
# 查看版本
python --version
# 查看 pip 位置
(Get-Command pip).Source
5.2 项目级 Python(推荐)
powershell
# 进入项目目录
cd E:\Projects\MyProject
# 创建本地配置(生成 mise.toml)
mise use python@3.11
# 查看配置
cat mise.toml
# 输出:
# [tools]
# python = "3.11"
# 激活环境(自动切换)
cd E:\Projects\MyProject
python --version # 显示 3.11.x
# 离开目录自动恢复全局版本
cd ~
python --version # 显示全局版本(如 3.12.x)
5.3 卸载 Python
powershell
# 方法 1:卸载特定版本
mise uninstall python@3.11
# 方法 2:从全局配置移除(保留安装文件)
mise use --global --rm python
# 方法 3:彻底清理(卸载 + 删除配置)
mise uninstall python@3.11
mise use --global --rm python
# 清理未使用的版本
mise prune
六、mise 常用查看命令
6.1 查看已安装环境
powershell
# 查看所有已安装工具
mise list
# 简写
mise ls
# 查看特定工具
mise list python
mise ls node
# 查看当前激活的工具
mise current
mise current python
# 查看全局配置的工具
mise ls --global
6.2 查看可用版本
powershell
# 查看远程可用版本
mise ls-remote python
mise ls-remote node
# 查看最新版本
mise latest python
6.3 查看路径信息
powershell
# 查看工具可执行文件路径
mise which python
# 输出:E:\Tools\mise\data\installs\python\3.12.x\bin\python.exe
# 查看工具安装目录
mise where python
# 输出:E:\Tools\mise\data\installs\python\3.12.x
6.4 查看配置信息
powershell
# 查看完整配置(诊断)
mise doctor
# 查看设置
mise settings
# 查看任务(如果有配置)
mise tasks
6.5 查看环境变量
powershell
# 查看 mise 相关的环境变量
mise env
# 导出为 PowerShell 格式
mise env --shell pwsh
七、完整配置示例
7.1 全局配置(~/.config/mise/config.toml)
toml
[tools]
python = "3.12"
node = "20"
go = "1.22"
rust = "latest"
[settings]
experimental = true # 启用实验性功能
python_compile = false # Python 不编译(Windows 推荐)
[env]
# 全局环境变量
PYTHONDONTWRITEBYTECODE = "1"
7.2 项目配置(mise.toml)
toml
[tools]
python = { version = "3.11", virtualenv = ".venv" }
node = "18"
[env]
PROJECT_NAME = "my-project"
DATABASE_URL = "postgres://localhost:5432/mydb"
[tasks]
dev = "python manage.py runserver"
test = "pytest"
lint = "ruff check ."
八、常见问题
| 问题 | 解决 |
|---|---|
mise list 为空但 python 可用 |
Python 不是 mise 安装的,检查 (Get-Command python).Source |
chpwd 警告 |
升级 PowerShell 7 或设置 MISE_PWSH_CHPWD_WARNING=0 |
| 工具安装后找不到 | 确保 shims 目录在 PATH 最前面 |
| 权限拒绝 | 使用 User 级别环境变量,避免 Machine 级别 |
| 版本切换不生效 | 检查当前目录是否有 mise.toml 覆盖全局配置 |
九、总结
mise 是现代开发环境管理的终极解决方案,特别适合:
- 需要管理多版本语言的开发者
- 团队协作需要统一环境
- Windows 用户想要类 Unix 的体验
核心命令记忆:
mise use --global python@3.12- 安装并设置全局版本mise list/mise current- 查看已安装/当前版本mise uninstall python@3.12- 卸载特定版本mise doctor- 诊断问题
希望这份教程对你有帮助!如果需要补充其他平台(macOS/Linux)的内容或特定语言(Node/Go/Rust)的配置,可以告诉我。