简介这份资源面向深度学习初学者与需要配置 PyTorch 开发环境的学生、开发者聚焦于在 Anaconda 中新建独立虚拟环境来搭建深度学习框架避免直接在 base 环境中安装导致的库冲突问题。压缩包内共 1 个 docx 文档约 170KB以图文笔记形式整理环境配置的关键环节便于边看边操作。内容涉及 conda 新建与激活环境命令、显卡驱动版本查看、CUDA 与 cuDNN 版本匹配思路以及 PyTorch、Torchvision 的版本选择与安装命令还给出国内镜像源地址用于加速下载并演示了导入 torch、查看版本与检测 GPU 是否可用的验证方法。目前已有 1609 人学习下载适合希望快速跑通 PyTorch 环境、减少版本踩坑的读者参考。1. 为什么我劝你别在 base 环境里装 PyTorch刚接触深度学习那会儿我也图省事直接在 Anaconda 的 base 环境里pip install torch。结果三个月后一个做图像分割的项目需要 PyTorch 1.7 CUDA 11.0另一个做 NLP 的 Demo 又依赖 TensorFlow 1.5两个框架的 numpy 版本互相打架base 环境直接崩了重装 Anaconda 花了我一整个下午。从那以后我给自己定了一条死规矩任何深度学习框架一律新建独立虚拟环境。这份资源要解决的就是「PyTorch 深度学习虚拟环境搭建」这件事——从 Anaconda 建环境、装 CUDA/cuDNN、选对 PyTorch 版本到验证 GPU 是否真的可用。它适合刚入门深度学习、准备跑第一个训练脚本的开发者也适合手里有多套代码、被依赖冲突折磨过的老手。核心逻辑只有一句话环境隔离是底线版本匹配是关键验证 GPU 是最后一道关。2. 用 conda 建一个干净的 PyTorch 环境命令、参数与目录结构2.1 为什么不复用 base也不建议用 venvAnaconda 的 base 环境里预装了 numpy、scipy、jupyter 等一大堆包看起来方便实际上是隐患。深度学习框架对 numpy、protobuf、h5py 这些底层库的版本极其敏感base 里预装的版本往往和你需要的框架版本对不上。一旦你在 base 里pip install覆盖了某个包jupyter 可能就打不开了conda 自身的依赖也可能被破坏。那用 Python 自带的venv行不行对于纯 CPU 的轻量项目可以但深度学习场景下不推荐。原因有两个一是venv只管 Python 包管不了 CUDA 工具链这种非 Python 依赖二是 conda 可以同时管理 Python 版本和二进制依赖装 PyTorch 时能自动拉取匹配的 cudatoolkit省去手动配环境变量的麻烦。常见做法是深度学习用 conda 建环境纯 Web 开发用 venv。2.2 新建环境的完整命令与参数拆解打开 Anaconda PromptWindows或终端Linux/macOS执行下面这条命令# 新建一个名为 pytorch 的环境指定 Python 3.8 # -n 后面跟环境名python 后面跟版本号 conda create -n pytorch python3.8这里有几个参数值得说清楚-n pytorch-n是--name的缩写指定环境名称。名字建议用pytorch、torch17这种能看出用途的别用env1、test过两个月你自己都忘了是干嘛的。python3.8指定 Python 版本。PyTorch 1.7 官方支持 Python 3.63.8选 3.8 是比较稳的。如果你装的是更新的 PyTorch可以选 3.9 或 3.10但要注意有些老代码在 3.10 上会有语法兼容问题。不加python的话conda 会用默认版本可能和你需要的框架不匹配所以强烈建议显式指定。执行过程中 conda 会列出将要安装的包输入y确认。装完后激活环境# 激活刚建好的环境 conda activate pytorch # 确认当前 Python 版本和路径 python --version which python # Windows 上用 where python激活后命令行提示符前面会出现(pytorch)说明你已经进入这个独立环境了。以后在 PyCharm 里配置解释器时就指向这个环境的 python.exe路径一般在Anaconda安装目录/envs/pytorch/python.exe。提示如果你用的是 Windows 且conda activate报错先执行conda init然后重开终端。这是 conda 4.6 以后的一个常见初始化问题。2.3 环境目录里到底放了什么建完环境后你可以到Anaconda安装目录/envs/pytorch/下面看一眼。里面会有Lib/site-packages存放所有 pip 和 conda 装的包、python.exe该环境独立的解释器、Scripts可执行脚本。每个环境都是这样一套完整的目录互不干扰。这也是为什么环境隔离能解决问题——你在这个环境里升级 numpy另一个环境里的 numpy 纹丝不动。3. CUDA 与 cuDNN 版本怎么选从显卡驱动倒推3.1 先查驱动版本再决定 CUDA 上限很多人装 CUDA 的顺序是错的先下载最新版 CUDA装完发现显卡驱动不支持又回头折腾驱动。正确的顺序是从显卡驱动倒推。在 Windows 上右键桌面 → NVIDIA 控制面板 → 帮助 → 系统信息 → 组件可以看到「NVIDIA 驱动程序版本」和「CUDA 版本」两行。这里的 CUDA 版本是驱动最高支持的 CUDA 版本不是你已经安装的版本。比如显示 CUDA 11.2意味着你可以装 11.2 及以下的 CUDA装 11.3 就可能出问题。Linux 下用命令查# 查看显卡驱动版本和支持的最高 CUDA 版本 nvidia-smi输出右上角会显示CUDA Version: 11.2这样的字样。记住这个数字它是你的天花板。3.2 CUDA 11.0 cuDNN 8.0 的匹配逻辑原始项目里选的是 CUDA 11.0 cuDNN 8.0 PyTorch 1.7.0 torchvision 0.8.1。这个组合在 2020 年底到 2021 年初是主流配置现在虽然偏老但很多实验室的旧代码和预训练模型还锁在这个版本上。选 CUDA 11.0 的理由是驱动支持 11.211.0 在支持范围内且比 11.2 更成熟第三方库的兼容性更好。cuDNN 必须和 CUDA 版本对应CUDA 11.0 对应 cuDNN 8.0.x装错了会导致 PyTorch 找不到 cuDNN 库。下载 CUDA 和 cuDNN 时注意组件版本下载来源关键注意点CUDA Toolkit11.0NVIDIA 官网归档页选 runfile 或 exe 本地安装包cuDNN8.0.xNVIDIA 开发者页面需要注册账号下载后解压覆盖到 CUDA 目录PyTorch1.7.0PyTorch 官网 previous-versions复制对应 CUDA 11.0 的安装命令torchvision0.8.1随 PyTorch 命令一起装版本必须和 PyTorch 匹配cuDNN 的安装方式是把解压后的bin、include、lib三个文件夹里的内容分别复制到 CUDA 安装目录的对应文件夹里。这一步容易漏漏了的话torch.cuda.is_available()会返回 False。注意CUDA 安装时如果提示「Visual Studio Integration」失败可以忽略那个组件是给 C 开发用的不影响 PyTorch。3.3 用 conda 装 cudatoolkit 的替代方案如果你不想手动装 CUDA 和 cuDNNconda 提供了一个更省事的方案在环境里直接装cudatoolkit。PyTorch 官方 conda 命令里通常已经包含了这个依赖比如# 用 conda 安装 PyTorch 1.7.0 CUDA 11.0 的组合 conda install pytorch1.7.0 torchvision0.8.1 torchaudio0.7.0 cudatoolkit11.0 -c pytorch这样 conda 会自动帮你处理好 CUDA 运行时库不需要单独装 CUDA Toolkit 和 cuDNN。缺点是 conda 的 cudatoolkit 只包含运行时不包含 nvcc 编译器如果你需要编译自定义 CUDA 算子还是得装完整的 CUDA Toolkit。常见做法是纯跑模型用 conda 装 cudatoolkit要编译扩展就手动装完整 CUDA。4. 安装 PyTorch 与验证 GPU命令、镜像源与排错4.1 从官网复制安装命令的正确姿势PyTorch 官网的 previous-versions 页面列出了所有历史版本的安装命令。找到 1.7.0 对应的 CUDA 11.0 那一行复制 conda 或 pip 命令。以 pip 为例# 安装 PyTorch 1.7.0 torchvision 0.8.1CUDA 11.0 版本 pip install torch1.7.0cu110 torchvision0.8.1cu110 torchaudio0.7.0 -f https://download.pytorch.org/whl/torch_stable.html注意cu110这个后缀它表示这个 wheel 包是编译了 CUDA 11.0 支持的。如果你装的是不带后缀的版本那就是 CPU 版torch.cuda.is_available()会返回 False。这是新手最容易踩的坑之一。4.2 国内镜像源加速与注意事项PyTorch 官方源在国内下载速度可能很慢可以换国内镜像源。但要注意镜像源同步的包可能不全尤其是带cu110这种后缀的 CUDA 版本。如果镜像源里找不到对应版本还是得回官方源。常用的镜像源# 临时使用清华源安装普通包 pip install tensorflow1.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple # 永久配置清华源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple可选的镜像源还有阿里云、中科大、豆瓣等。但装 PyTorch CUDA 版时我一般还是用官方源加-f参数指定 wheel 索引页因为镜像源对 CUDA 版本的支持不稳定。4.3 验证脚本三行代码确认环境是否可用装完后必须验证。在激活的 pytorch 环境里执行# 启动 Python 解释器后逐行输入 import torch # 导入 PyTorch print(torch.__version__) # 输出 PyTorch 版本应为 1.7.0cu110 print(torch.cuda.is_available()) # 输出 True 表示 GPU 可用 print(torch.cuda.get_device_name(0)) # 输出显卡型号如果torch.cuda.is_available()返回 False按以下顺序排查确认装的是 CUDA 版而不是 CPU 版看版本号有没有cu110。确认 CUDA 和 cuDNN 装好了且 cuDNN 的文件复制到了正确位置。确认显卡驱动版本支持所装的 CUDA 版本。在命令行执行nvidia-smi看能否正常输出显卡信息。4.4 在 PyCharm 里绑定这个环境PyCharm 新建项目时解释器选择「Existing interpreter」然后指向Anaconda安装目录/envs/pytorch/python.exe。绑定后PyCharm 右下角会显示当前环境名运行脚本时用的就是这个环境里的包。如果你在 PyCharm 里装包注意看它用的是不是这个环境的 pip别装到 base 里去了。5. 避坑指南五个让我重装过环境的血泪教训5.1 坑一pip 和 conda 混用导致依赖冲突现象在 conda 环境里用 pip 装了 PyTorch又用 conda 装了另一个包结果 conda 把 PyTorch 的依赖降级了GPU 不可用。原因conda 和 pip 各自维护一套依赖解析逻辑conda 不知道 pip 装了什么pip 也不管 conda 的包。混用时容易互相覆盖。解决一个环境里尽量只用一种包管理器。装 PyTorch 用 conda 命令就全程 conda用 pip 就全程 pip。如果必须混用先用 conda 装完所有 conda 包最后再用 pip 装 conda 里没有的包。5.2 坑二CUDA 版本和 PyTorch 版本不匹配现象torch.cuda.is_available()返回 False或者 import torch 时报undefined symbol错误。原因装的是 CUDA 11.0 的 PyTorch但系统里装的是 CUDA 10.2或者反过来。解决用conda list查看环境里 cudatoolkit 的版本用nvcc --version查看系统 CUDA 版本确保两者一致。不一致就重装对应版本的 PyTorch。5.3 坑三cuDNN 文件没复制全现象PyTorch 能 import但一跑 GPU 运算就报cuDNN error。原因cuDNN 解压后有三个文件夹只复制了bin里的 dll忘了复制include和lib。解决重新解压 cuDNN把bin、include、lib三个文件夹的内容分别复制到 CUDA 安装目录的同名文件夹里。复制时选「合并」而不是「替换」。5.4 坑四Python 版本选太高导致老代码跑不了现象环境建好了PyTorch 也装上了但跑项目代码时报语法错误或某个包没有对应版本的 wheel。原因选了 Python 3.10 或 3.11但项目依赖的某个老包只支持到 3.8。解决建环境前先看项目requirements.txt或setup.py里有没有 Python 版本限制。没有明确要求的话深度学习项目选 3.8 是最稳妥的。5.5 坑五忘了激活环境就直接装包现象装完 PyTorch 后在 PyCharm 里跑代码提示No module named torch。原因装包时没激活 pytorch 环境装到 base 里去了。解决养成习惯打开终端第一件事就是conda activate pytorch看到提示符前面有(pytorch)再执行安装命令。装完后用pip show torch确认安装位置在 pytorch 环境的 site-packages 下。6. 多环境管理与环境迁移的实用技巧当你手里同时有三四个项目时环境管理就成了一门必修课。我一般会遵循几个习惯每个项目一个环境环境名带项目缩写和框架版本比如seg-torch17、nlp-tf15。这样一看名字就知道该激活哪个。查看所有环境用conda env list删除不用的环境用conda env remove -n 环境名。导出环境配置用conda env export environment.yml别人拿到这个文件后执行conda env create -f environment.yml就能复现一模一样的环境。但要注意environment.yml里会包含本地路径和 pip 装的包跨平台迁移时可能需要手动调整。还有一个技巧是给环境瘦身。conda 环境用久了会积累很多缓存和无用包执行conda clean --all可以清理下载缓存conda list --revisions可以查看环境的历史版本必要时用conda install --revision N回滚到某个状态。这相当于给环境装了个后悔药装错包导致环境崩了可以快速恢复。最后说一个验证环境是否真的独立的办法在两个环境里分别执行python -c import numpy; print(numpy.__version__)如果输出的版本号不同说明隔离生效了。如果相同检查一下是不是两个环境指向了同一个 site-packages。从那以后我每次新建环境都会先跑一遍conda env list确认环境建好了再激活、装包、验证 GPU最后才打开 PyCharm 写代码。这套流程走下来多花五分钟但能省掉后面几个小时的排错时间。希望帮到你。本文还有配套的精品资源点击获取