能直接用conda create一条命令搞定GPU环境,前提是nvidia-smi能正常输出且驱动支持的CUDA版本≥所选pytorch-cuda版本;需指定-c nvidia -c pytorch双通道安装预编译包,避免手动配置依赖。

能直接用 conda create 一条命令搞定,前提是显卡驱动已就绪、nvidia-smi 能正常输出。别先装 CUDA Toolkit,Conda 会自动配好运行时依赖。
确认 NVIDIA 驱动和 CUDA 兼容性
这是最容易跳过的前置动作,但跳过就大概率 torch.cuda.is_available() 返回 False。打开终端执行:
nvidia-smi
看输出里 “CUDA Version” 这一栏(不是 Driver Version)——它表示当前驱动**最高支持的 CUDA 版本**,不是你装了什么 CUDA。比如显示 CUDA Version: 12.0,那你就不能选 pytorch-cuda=12.1,否则 Conda 会装上但 PyTorch 无法调用 GPU。
- 实际可用的 PyTorch-CUDA 组合以 PyTorch 官网安装页面 为准,Conda 命令里的
pytorch-cuda=11.8或pytorch-cuda=12.1必须 ≤nvidia-smi显示的版本 - Windows 用户注意:
nvidia-smi在 WSL2 里不可用,必须在原生 Windows 终端里查 - 驱动太旧(如低于 510)可能不支持 CUDA 12.x,这时得去 NVIDIA 官网升级驱动,而不是降级 PyTorch
用 conda create 创建带 GPU 支持的环境
不要用 pip install torch,它不带 CUDA 运行时;也不要手动 conda install cudatoolkit 再装 torch,容易版本错位。正确姿势是让 Conda 一次性拉取预编译的完整包:
conda create -n dl-gpu python=3.10 pytorch-cuda=11.8 -c nvidia -c pytorch
这条命令的关键点:
-
python=3.10:PyTorch 2.0+ 推荐的稳定小版本,避开 3.11 的部分 ABI 兼容问题 -
pytorch-cuda=11.8:指定 CUDA 构建版本,Conda 会自动附带匹配的cudatoolkit和cuDNN二进制库 -
-c nvidia和-c pytorch:必须同时加这两个 channel,否则可能装到旧版或 CPU-only 包 - 不推荐用
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia—— 这是在已有环境中追加,容易触发依赖冲突
验证 GPU 是否真正可用
激活环境后,别急着跑模型,先做两件事:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
conda activate dl-gpu python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.device_count())"
预期输出应类似:
2.4.0+cu118 True 1
如果输出 False,常见原因有:
- 没激活环境,还在
(base)下执行 —— 检查终端前缀 -
torch.__version__末尾没有+cu118字样 —— 说明装的是 CPU 版,重装时确认 channel 顺序和网络是否命中镜像 -
nvidia-smi显示驱动支持 CUDA 12.0,但你装了pytorch-cuda=11.8—— 没问题,向下兼容;但如果装了=12.1就会失败 - Jupyter Notebook 找不到该环境 —— 需额外执行
conda install ipykernel,再运行python -m ipykernel install --user --name dl-gpu
为什么不用 pip + venv?
因为 venv 只隔离 Python 包,管不了 cudatoolkit 这类系统级二进制依赖。你可以在 venv 里 pip install torch 成功,但 torch.cuda.is_available() 仍为 False,除非你提前在系统全局装好完全匹配的 CUDA Toolkit + cuDNN —— 这正是 Conda 替你绕开的深坑。
真正麻烦的从来不是命令本身,而是显卡驱动版本、Conda channel 优先级、以及 PyTorch 构建标签(+cu118)这三者之间隐性的对齐关系。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










