mise 使用教程 — 在 Linux/macOS 上管理 Node/Python 多版本

本文最后更新于:2026年8月7日 下午

mise 是什么

mise(前身 rtx)是一个用 Rust 编写的开发工具版本管理器:一个命令同时管理 Node.js、Python、Java、Go、Ruby 等 400+ 工具的安装与版本切换。

相比”一个语言一个管理器”(nvm + pyenv + …)或 asdf,mise 的特点是:

  • 内置常用插件,无需额外安装插件
  • 配置即代码:项目根目录的 .mise.toml 提交到 git,团队成员 clone 后 mise install 即可复现环境
  • 天然支持同语言多版本并存,按全局 / 项目 / 临时三种粒度切换
  • 附带 task runner 和 env 变量管理,可替代 Makefile + direnv 的部分场景

安装

Linux / macOS

1
curl https://mise.run | sh

macOS 也可以用 Homebrew:

1
brew install mise

安装后把 mise 挂到 shell(bash 为例):

1
2
3
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
source ~/.bashrc
mise --version
  • zsh:eval "$(~/.local/bin/mise activate zsh)"
  • fish:~/.local/bin/mise activate fish | source
  • Windows PowerShell:irm https://mise.jdx.dev/install.ps1 | iex(WSL 用户直接装进 WSL 即可)

安装多版本 Node

1
2
3
4
5
6
7
8
9
10
# 查看远端可用版本
mise ls-remote nodejs | tail -20

# 安装指定版本(LTS / 具体版本号)
mise install nodejs@lts
mise install nodejs@22
mise install nodejs@20

# 查看已安装
mise ls

安装完成即用,npm/npx/yarn/corepack 随对应 Node 版本自带,不需要再单独装。

三种粒度切换

全局默认(默认 shell 里用 22):

1
mise use -g nodejs@22

项目级(在该目录下生成 .mise.toml,进入目录 node 自动切到 20):

1
2
cd my-project
mise use nodejs@20

临时(仅本次命令用 18):

1
mise exec nodejs@18 -- node -v

验证当前生效版本:

1
2
mise current
mise which node

安装多版本 Python

Python 在 Linux 上默认从源码编译,先装编译依赖(Ubuntu/Debian):

1
2
3
4
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev
1
2
3
4
5
6
7
# 安装 3.12 / 3.11(源码编译,约几分钟)
mise install python@3.12
mise install python@3.11

# 项目级 / 全局
mise use python@3.12
mise use -g python@3.11

较新版本的 mise 支持直接下载预编译 Python 跳过编译:

1
mise settings set python.compile false

(视版本而定,没有该选项就保持默认源码编译。)

pip 跟随解释器版本;虚拟环境按习惯用 python -m venv .venv 或 uv。

一份 .mise.toml 同时管 Node 和 Python

1
2
3
4
5
6
7
8
9
10
11
[tools]
nodejs = "22"
python = ["3.12", "3.11"]

[env]
NODE_ENV = "development"
PYTHONUNBUFFERED = "1"

[tasks]
dev = "python app.py"
test = "npm test"
  • [tools] 里同工具写成数组即可多版本并存,用 mise exec nodejs@20 -- node -v 按需调用
  • [env] 在该目录自动注入环境变量
  • [tasks]mise run dev / mise run test 执行
  • .mise.toml 提交进 git,别人 clone 后 mise install 一次装齐
  • 兼容旧的 .node-version / .python-version 文件,从 nvm/pyenv 迁移无需改项目
  • 首次在陌生目录使用会提示确认,mise trust 信任该目录

常用命令速查

命令 作用
mise ls-remote nodejs 列出远端可用版本
mise install nodejs@22 安装指定版本
mise use nodejs@22 项目内使用(写入 .mise.toml)
mise use -g nodejs@lts 设为全局默认
mise exec nodejs@20 -- node -v 临时指定版本执行命令
mise ls 列出已安装版本
mise current 显示当前生效版本
mise which node 显示当前二进制路径
mise uninstall nodejs@20 卸载版本
mise prune 清理未使用版本
mise outdated 检查过期版本
mise upgrade --bump 升级到最新
mise env 导出环境变量
mise doctor 环境自检
mise trust 信任目录配置
mise self-update 升级 mise 本体

与主流方案对比

方案 覆盖 配置文件 特点
nvm 仅 Node .nvmrc 每开新 shell 需 source,慢
fnm 仅 Node .node-version Rust 实现,快
volta 仅 Node package.json engines 自动切换,二进制分发
pyenv 仅 Python .python-version 源码编译,需装编译依赖
uv 仅 Python pyproject.toml 极快,兼管解释器与依赖
asdf 多语言 .tool-versions 插件生态,但较慢
mise 多语言 .mise.toml Rust 实现,内置任务/环境变量,兼容 asdf 插件

进阶

  • CI:GitHub Actions 直接用 jdx/mise-action
  • IDE:编辑器不经过 shell hook 时,把 ~/.local/share/mise/shims 加入 PATH
  • Docker:镜像内 mise install --yes 静默安装
  • 代理环境:设置 HTTPS_PROXY 即可

mise 使用教程 — 在 Linux/macOS 上管理 Node/Python 多版本
https://kingjem.github.io/2026/08/07/mise-使用教程-多版本管理Node-Python/
作者
Ruhai
发布于
2026年8月7日
许可协议