
环境搭建是 AI 工程学习的第一步。与其在后续开发中反复排查依赖冲突、版本不兼容和 GPU 无法使用等问题,不如从一开始就建立一套规范、稳定、可复现的开发环境。
一、为什么要重视开发环境?
在 AI 工程开发过程中,我们经常会遇到以下问题:
- Python 包安装成功,但运行程序时提示
ModuleNotFoundError。
- 不同项目依赖不同版本的库,升级一个项目后,另一个项目无法正常运行。
- Node.js 版本不符合项目要求,导致前端项目启动失败。
- Rust 程序缺少编译工具,无法正常构建。
- PyTorch 已经安装,但无法识别 NVIDIA GPU。
- 本地开发环境运行正常,换一台机器后却出现各种问题。
这些问题看起来各不相同,但很多时候都与开发环境的配置和依赖管理有关。
对于 AI 工程而言,开发环境不仅包含编程语言,还涉及操作系统、包管理器、运行时、系统依赖以及 GPU 驱动等多个部分。因此,搭建环境不能只关注某个软件是否安装成功,更重要的是保证整个技术栈能够协同工作。
本文将从系统基础开始,逐步完成 Python、Node.js、Rust 和 PyTorch 的环境配置,并介绍如何通过验证脚本检查环境是否满足学习要求。
二、理解 AI 工程环境的四层架构
在正式安装之前,先了解开发环境的整体结构。可以将 AI 工程环境划分为四层:
┌────────────────────────────────────┐
│ 第四层:AI/ML 库 │
│ PyTorch、JAX、Transformers │
├────────────────────────────────────┤
│ 第三层:语言运行时 │
│ Python、Node.js、Rust │
├────────────────────────────────────┤
│ 第二层:包管理器 │
│ uv、pnpm、Cargo │
├────────────────────────────────────┤
│ 第一层:系统基础 │
│ 操作系统、Shell、Git、GPU 驱动 │
└────────────────────────────────────┘
1. 系统基础
系统基础是整个开发环境的底座,主要包括:
- 操作系统:Linux、Windows、macOS。
- Shell:Bash、Zsh、PowerShell。
- 基础工具:Git、curl、wget、unzip。
- 编译工具:GCC、Clang 等。
- GPU 驱动:NVIDIA 驱动及 Apple GPU 相关支持。
2. 包管理器
包管理器负责软件安装、依赖解析和版本管理。
| 工具 |
主要用途 |
| uv |
Python 环境及依赖管理 |
| pnpm |
Node.js 项目依赖管理 |
| Cargo |
Rust 项目依赖管理和构建 |
| Julia Pkg |
Julia 包管理 |
3. 语言运行时
不同类型的项目需要不同的语言运行环境。
- Python:机器学习、深度学习、数据处理和 LLM 开发。
- Node.js:TypeScript、Web 应用、Agent 和 MCP 服务。
- Rust:高性能系统、推理组件和基础设施。
- Julia:数学计算和科学计算。
4. AI/ML 库
最上层是实际开发中使用的框架和库,例如 PyTorch、JAX、Transformers 和 NumPy。
这里有一个非常重要的排错原则:从底层向上检查。例如,执行 import torch 失败,不一定是 PyTorch 本身的问题,也可能是 Python 版本不正确、虚拟环境没有激活,或者依赖安装到了其他目录。理解这一点,可以避免很多无效排查。
三、安装系统基础工具
本文主要以 Ubuntu/Debian Linux 为例进行演示。首先更新软件包索引,并安装基础工具:
sudo apt update
sudo apt install -y \
build-essential \
git \
curl \
wget \
unzip
各工具的用途如下:
build-essential:安装常见编译工具。
git:进行代码版本管理。
curl:下载文件及访问 HTTP/HTTPS 接口。
wget:下载网络资源。
unzip:解压 ZIP 文件。
安装完成后,可以执行以下命令检查:
git --version
curl --version
wget --version
unzip -v
如果这些命令能够正常执行,说明基础工具已经具备。
Windows 用户也可以使用 WSL2 搭建 Linux 开发环境:
wsl --install -d Ubuntu-24.04
macOS 用户则可以使用 Homebrew 安装相关工具。
四、使用 uv 搭建 Python 开发环境
Python 是 AI 工程中最常用的编程语言之一。在实际项目中,不同项目往往依赖不同版本的 Python 包。如果直接使用系统 Python 安装所有依赖,很容易出现版本冲突。因此,推荐为每个项目创建独立的虚拟环境。
1. 安装 uv
uv 是一个用于 Python 版本、虚拟环境和依赖管理的工具。在 Linux 或 macOS 中执行:
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后,检查版本:
uv --version
如果提示找不到命令,可以根据安装程序提示重新加载 Shell 环境或配置 PATH。
2. 安装 Python
使用 uv 安装 Python 3.12:
uv python install 3.12
查看已安装的 Python 版本:
uv python list
本文选择 Python 3.12,满足学习要求的 Python 3.11+。
3. 创建虚拟环境
先创建项目目录:
mkdir ai-env-demo
cd ai-env-demo
创建虚拟环境:
uv venv --python 3.12
Linux/macOS 激活环境:
source .venv/bin/activate
Windows PowerShell 激活环境:
.venv\Scripts\Activate.ps1
检查 Python 版本和执行路径:
python --version
python -c "import sys; print(sys.executable)"
如果输出路径指向当前项目的 .venv 目录,说明当前使用的是项目虚拟环境。
4. 安装 Python 依赖
安装 NumPy、Matplotlib 和 Jupyter:
uv pip install numpy matplotlib jupyter
验证 NumPy 是否能够正常使用:
import sys
import numpy as np
print(f"Python: {sys.version}")
print(f"NumPy: {np.__version__}")
a = np.array([1, 2, 3])
print(f"Vector: {a}")
print(f"Dot product: {np.dot(a, a)}")
预期结果:
Vector: [1 2 3]
Dot product: 14
其中,点积的计算过程为:
1 × 1 + 2 × 2 + 3 × 3 = 14
这个简单的例子可以验证 Python 是否能够正常导入 NumPy 并执行数值计算。

5. 如何保证 Python 环境可复现?
仅创建虚拟环境并不意味着依赖已经锁定。对于需要长期维护的项目,可以使用 pyproject.toml 描述依赖,并使用 uv 生成锁文件:
uv init
uv add numpy matplotlib jupyter
uv lock
在其他环境中,可以执行:
uv sync
根据项目配置和锁文件同步依赖。这样做的好处是:当项目迁移到另一台服务器,或者交给其他开发人员时,可以更方便地恢复相同的依赖环境。
五、安装 Node.js 并使用 pnpm 管理依赖
Node.js 常用于 TypeScript 项目、Web 应用、Agent 和 MCP 服务端开发。
1. 安装 fnm
fnm 是一个 Node.js 版本管理工具,可以方便地切换不同版本。执行:
curl -fsSL https://fnm.vercel.app/install | bash
安装完成后,按照安装程序的提示配置 Shell 环境。例如,在支持 Bash 配置的环境中,可以使用:
eval "$(fnm env --use-on-cd)"
如果当前终端仍然无法识别 fnm,需要检查 PATH 配置,并重新打开终端。
2. 安装 Node.js
安装 Node.js 22:
fnm install 22
fnm use 22
验证:
node --version
npm --version
本文选择 Node.js 22,满足学习要求的 Node.js 20+。
3. 安装 pnpm
使用 npm 安装 pnpm:
npm install -g pnpm
验证:
pnpm --version
在实际项目中,应当提交 package.json 和 pnpm-lock.yaml 等项目文件。在 CI/CD 构建环境中,可以使用:
pnpm install --frozen-lockfile
确保安装过程遵循已有锁文件,避免构建时随意改变依赖版本。
六、安装 Rust 工具链
Rust 适用于高性能组件、系统开发和部分 AI 基础设施场景。
1. 安装 rustup
在 Linux/macOS 中执行:
curl --proto '=https' --tlsv1.2 -sSf \
https://sh.rustup.rs | sh
根据安装程序提示完成安装。如果当前终端无法识别 Rust 命令,可以执行:
source "$HOME/.cargo/env"
2. 验证安装
rustc --version
cargo --version
其中:
rustc 是 Rust 编译器。
cargo 是 Rust 的构建和依赖管理工具。
3. 运行一个简单程序
创建 main.rs:
fn main() {
println!("Hello, AI Engineering!");
}
编译并执行:
rustc main.rs -o hello
./hello
如果正常输出:
Hello, AI Engineering!
说明 Rust 编译器已经能够正常编译并执行基础程序。
七、配置 PyTorch 与 GPU 环境
对于 AI 工程来说,除了编程语言和依赖管理工具,还需要关注 GPU 计算环境。
1. NVIDIA GPU 与 CUDA
CUDA 是 NVIDIA 提供的并行计算平台,可用于执行深度学习中大量的矩阵运算。首先检查 GPU 驱动:
nvidia-smi
如果能够显示 GPU 型号、驱动版本和显存信息,说明驱动工具能够识别 GPU。

随后,在已激活的 Python 虚拟环境中安装课程示例使用的 CUDA 12.4 版 PyTorch:
uv pip install torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu124
需要注意,这只是一个示例安装命令。实际安装时,应根据操作系统、Python 版本、GPU 驱动和 PyTorch 官方兼容要求选择对应的版本。
2. Apple Silicon 与 MPS
如果使用的是搭载 M1、M2、M3 或 M4 芯片的 Mac,需要区分 CUDA 与 MPS。Apple Silicon 不使用 NVIDIA CUDA,而是可以通过 MPS 后端调用 Apple GPU。
安装 PyTorch:
uv pip install torch torchvision torchaudio
macOS 不应使用 Linux/Windows 专用的 CUDA wheel。
3. 验证 PyTorch 是否能够使用 GPU
创建 check_gpu.py:
import torch
print("PyTorch version:", torch.__version__)
print("CUDA available:", torch.cuda.is_available())
print("MPS available:", torch.backends.mps.is_available())
if torch.cuda.is_available():
print("GPU:", torch.cuda.get_device_name(0))
if torch.cuda.is_available():
device = torch.device("cuda")
elif torch.backends.mps.is_available():
device = torch.device("mps")
else:
device = torch.device("cpu")
x = torch.tensor([1.0, 2.0, 3.0], device=device)
y = x * x
print("Selected device:", device)
print("Tensor:", y)
print("Tensor device:", y.device)
执行:
python check_gpu.py
这段代码完成了三项检查:
- 查看 PyTorch 版本。
- 检查 CUDA 和 MPS 是否可用。
- 根据环境选择计算设备,并执行张量运算。
如果输出为:
Tensor: tensor([1., 4., 9.], device='cuda:0')
说明这次张量运算使用了 CUDA 设备。如果设备显示为 mps:0,则说明使用的是 MPS。如果显示为 cpu,程序使用 CPU 执行计算。

八、常见问题排查
问题一:找不到 uv 命令
先执行:
command -v uv
uv --version
如果命令不存在,检查安装是否完成,并根据安装程序提示配置 PATH。
问题二:Python 版本不正确
执行:
python --version
python -c "import sys; print(sys.executable)"
重点检查当前使用的 Python 是否来自预期的虚拟环境。
问题三:fnm 安装失败
如果提示缺少 unzip,可以执行:
sudo apt install -y unzip
然后重新运行 fnm 安装流程。
问题四:PyTorch 无法识别 GPU
建议按照以下顺序排查:
- 检查 GPU 驱动是否正常。
- 检查当前 Python 是否为预期的虚拟环境。
- 检查 PyTorch 的安装版本是否适合当前平台。
- 检查驱动和 CUDA 构建之间的兼容性。
- 检查实际张量运算使用的设备。
Linux/NVIDIA 环境可以执行:
nvidia-smi
python -c "import torch; print(torch.__version__)"
python -c "import torch; print(torch.cuda.is_available())"
不要只凭 PyTorch 安装成功就认定 GPU 环境已经配置完成。
以上内容仅为作者个人观点,仅供交流与探讨。如果你对本文的配置方式有不同想法或补充,欢迎到云栈社区与更多开发者一起交流。