Mojo 环境搭建与初体验
这是 Mojo 学习模块的第一篇。所有示例基于 Mojo 1.0(2026 年 8 月发布)——注意网上大量 2024 年前的中文教程使用的是旧语法(
fn、let、borrowed/inout/owned),已与 1.0 不兼容,学习时请认准版本。
一、Mojo 是什么,为什么值得现在学
用三句话概括:
- 语法像 Python,性能对标 C++/CUDA——官方演示中特定基准比 Python 快 35000 倍,日常数值计算场景普遍能拿到数量级的加速
- 为异构计算而生——同一门语言写上层业务、底层算子、系统组件,内建 SIMD 向量化和编译期元编程
- 1.0 + 全面开源——2026 年 8 月语言语义冻结进入长期稳定,编译器以 Apache 2.0 开源,被高通收购后仍保持独立运营
对有 Python 基础的开发者,Mojo 的学习曲线是所有系统级语言里最平缓的。
二、安装:Mojo 现在是个 pip/conda 包
Mojo 1.0 的一大变化:安装方式彻底 Python 化,不需要再下载 Modular 的独立安装器,用任意 Python/Conda 包管理器即可。官方推荐 pixi 或 uv。
方式一:pixi(官方推荐)
bash
# 1. 安装 pixi(跨平台包管理器)
curl -fsSL https://pixi.sh/install.sh | sh
# 2. 创建 Mojo 项目
pixi init hello-mojo \
-c https://conda.modular.com/max/ \
-c conda-forge
cd hello-mojo
# 3. 添加 Mojo
pixi add mojo
# 4. 进入项目环境
pixi shell方式二:uv
bash
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 直接安装 Mojo
uv pip install mojo
# 或创建项目并安装
uv init hello-mojo
cd hello-mojo
uv add mojo方式三:已有 conda 环境
bash
conda create -n mojo -c https://conda.modular.com/max/ -c conda-forge mojo
conda activate mojo安装完成后验证:
bash
mojo --version三、第一个程序
创建 hello.mojo:
mojo
def main():
print("Hello, Mojo!")运行:
bash
mojo hello.mojo没错,和 Python 几乎一模一样。区别在于:这行代码被编译成原生机器码,没有解释器和 GIL。
四、常用 CLI 命令
| 命令 | 作用 |
|---|---|
mojo hello.mojo | 编译并运行单个文件 |
mojo build hello.mojo | 编译为独立可执行文件 |
mojo repl | 进入交互式 REPL(类似 python 命令行) |
mojo format . | 格式化代码(类似 gofmt / rustfmt) |
mojo doc hello.mojo | 从 docstring 生成 API 文档 |
mojo debug hello.mojo | 调试模式运行 |
体验一下 REPL:
bash
$ mojo repl
>>> var x = 6 * 7
>>> print(x)
42五、写一个「能看出性能差距」的例子
光看 hello world 感受不到 Mojo 的价值。来一个对比:
mojo
def main():
var total: Int = 0
for i in range(1, 100_000_001):
total += i
print(total) # 5000000050000000一亿次累加,Mojo 编译后通常在几十毫秒内完成(试试 Python 跑同样的循环要多久——分钟级)。这就是「Python 语法 + 编译型性能」的直观体验。
六、编辑器配置
- VS Code:安装 Mojo 扩展(官方提供语法高亮、补全、跳转)
- 其余编辑器可用 LSP 接入;
mojo format可集成到保存钩子
七、小结
- Mojo 1.0 已可通过 pixi/uv/pip 安装,环境搭建成本 ≈ 一个 Python 包
- 语法起点对 Python 开发者零门槛,性能起点是编译型语言
- 注意甄别旧语法教程:
fn/let/owned等写法在 1.0 中已被移除或重做
下一篇:变量与基本类型。