Windows 开发环境多版本管理工具安装

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)的配置,可以告诉我。

相关推荐
开开心心就好2 小时前
免费音频转文字工具,绿色版离线多模型可用
人工智能·windows·计算机视觉·计算机外设·ocr·excel·语音识别
YDimanche3 小时前
双系统删除多余系统引导
windows·ubuntu
蜜獾云4 小时前
Java集合遍历方式详解(for、foreach、iterator、并行流等)
java·windows·python
一个人旅程~4 小时前
everything的快速搜索怎么达成?
linux·windows·电脑
Tisfy5 小时前
Windows - VsCode导致Windows凭据过多之一键删除
ide·windows·vscode
扁舟·TF7 小时前
老式播放器 - SD卡MP3歌曲顺序错乱问题解决
windows
njsgcs16 小时前
langchain+vlm示例
windows·python·langchain
tiandyoin18 小时前
找到系统设置对应的注册表项
windows·注册表·系统设置·systemsettings
liulun20 小时前
C++ WinRT中的异步
c++·windows