资讯动态

深度学习环境搭建:conda虚拟环境隔离与PyTorch GPU安装指南

发布时间:2026/10/16 16:19:37 来源:尧图企业网站定制
简介这份资源面向深度学习初学者与需要规范配置 PyTorch 开发环境的开发者核心解决在 Anaconda 中新建独立虚拟环境、避免在 base 环境直接安装框架导致依赖冲突的问题。资源包共 1 个 docx 文件约 170KB以图文笔记形式整理环境搭建的关键流程涵盖 conda 新建与激活环境命令、PyTorch 1.7.0 与 CUDA 11.0、CUDNN 8.0、Torchvision 0.8.1 的版本匹配思路以及查看显卡驱动版本、判断可安装 CUDA 版本的方法。文中还给出 PyTorch 官网历史版本查找方式、国内镜像源替换建议并通过 import torch、torch.cuda.is_available() 等命令验证安装结果帮助读者建立可复用的环境检查与排错习惯。目前已有 1606 人学习适合希望少走弯路、快速完成深度学习框架环境搭建的读者参考。1. 为什么我劝你别在 base 环境里装 PyTorch刚配好的机器兴冲冲pip install torch跑通一个 demo觉得自己行了。三个月后要复现另一篇论文要求 PyTorch 1.7 CUDA 11.0而 base 里躺着的是 2.x降级把别的库带崩升级又把旧代码跑挂。这种翻车我见过太多次根子就一个所有东西都塞在 base 环境里。深度学习环境搭建的核心不是装上而是隔离。Anaconda 的虚拟环境让每个项目拥有独立的 Python 解释器和库目录A 项目用 PyTorch 1.7B 项目用 2.x互不干扰。这篇笔记拆的是一套完整的落地流程从 conda 建环境、查显卡驱动、装 CUDA/cuDNN到在虚拟环境里装 PyTorch 并用 PyCharm 挂载最后验证 GPU 是否真的可用。适合刚拿到带 N 卡的机器、准备跑第一个训练脚本的人也适合被环境冲突折磨过、想重新理一遍的老手。2. 用 conda 建一个干净环境命令、参数与目录结构2.1 为什么是 conda 而不是 venvPython 自带的 venv 只能隔离 pip 包管不了 Python 版本本身更管不了 CUDA 工具链这种系统级依赖。conda 是跨语言的包管理器能同时锁 Python 版本、装二进制库、管理环境目录对深度学习这种Python 编译好的 CUDA 扩展的组合更合适。常见做法是机器上装一个 Anaconda 或 Miniconda之后所有项目都从它派生独立环境base 只留 conda 自己。选 Miniconda 还是完整版 Anaconda如果只是配深度学习环境Miniconda 体积小、干净装完自己按需conda install完整版预装了几百个科学计算包省事但臃肿。我一般给新机器装 Miniconda环境自己控。2.2 新建与激活环境的具体命令# 新建一个名为 pytorch 的环境指定 Python 版本 # -n 后面跟环境名python 后面跟版本号 conda create -n pytorch python3.8 # 中途会提示确认输入 y 回车 # 建完后查看所有环境带 * 的是当前激活的 conda env list # 激活环境Windows 和 Linux/macOS 命令不同 conda activate pytorch # Windows / 新版 conda 通用 # source activate pytorch # 老版本 Linux/macOS 可能需要这句 # 退出环境 conda deactivate参数说明-n pytorch里的pytorch是环境名随便起但建议和项目对应别用test1、env2这种过俩月自己都忘了是干嘛的。python3.8是硬约束PyTorch 1.7 官方支持到 3.8装 3.9 以上可能找不到对应 wheel。环境建好后所有 pip 和 conda 安装都只影响这个环境base 纹丝不动。提示激活环境后命令行提示符前面会出现(pytorch)这是判断当前在哪个环境最直接的方式。装包前先看一眼能省掉一半装错地方的坑。2.3 环境目录长什么样出问题去哪看conda 环境默认放在 Anaconda 安装目录的envs/下比如~/miniconda3/envs/pytorch/。里面bin/Windows 是Scripts/放可执行文件lib/site-packages/放第三方库。如果哪天环境彻底装乱了直接conda remove -n pytorch --all删掉重建比在里面修修补补快得多。这也是虚拟环境最大的价值它是可抛弃的坏了不心疼。3. 显卡驱动、CUDA 与 cuDNN版本怎么对顺序怎么走3.1 先查驱动再定 CUDA 上限装 CUDA 之前必须先看显卡驱动版本因为驱动决定了你能装的 CUDA 上限。打开 NVIDIA 控制面板点系统信息或者命令行直接查nvidia-smi输出右上角会显示CUDA Version: 11.2之类的字样。这个数字不是你已装的 CUDA 版本而是当前驱动最高支持的 CUDA 版本。原文里 11.2 11所以装 CUDA 11.0 没问题。反过来如果驱动只支持到 10.2你硬装 11.0 的 CUDAPyTorch 会报CUDA driver version is insufficient这是最典型的版本不匹配翻车。版本对应关系记一条经验CUDA 11.0 要求驱动版本大约 450.36 以上CUDA 11.2 要求 460 以上。不确定就去 NVIDIA 官方文档查对应表别凭感觉。3.2 CUDA 和 cuDNN 的安装顺序顺序是先装 CUDA Toolkit再把 cuDNN 的文件覆盖进去。CUDA 从 NVIDIA 官网下载对应版本的 runfile 或 exe安装时选自定义可以取消勾选驱动驱动已经装好了就别动它。装完验证nvcc -V能打印出版本号就说明 CUDA 装上了。cuDNN 是一个压缩包解压后把bin/、include/、lib/里的文件分别拷到 CUDA 安装目录对应的文件夹里。这一步没有安装程序纯手动覆盖容易漏文件。拷完可以检查cuda/lib/x64/下有没有cudnn64_8.dllWindows或libcudnn.soLinux。注意CUDA 和 cuDNN 的版本必须配套。cuDNN 8.0 对应 CUDA 11.0cuDNN 8.1 对应 CUDA 11.2装错组合会在训练时报CUDNN_STATUS_NOT_INITIALIZED排查起来很费时间。3.3 版本组合表我用的这套组件版本选择理由显卡驱动支持 CUDA 11.2驱动上限高于目标 CUDA留余量CUDA11.0驱动 11.2 11.0满足要求cuDNN8.0与 CUDA 11.0 配套PyTorch1.7.0支持 CUDA 11.0且相对较新Torchvision0.8.1与 PyTorch 1.7.0 严格配套Python3.8PyTorch 1.7 官方支持版本这张表是原文里那套组合的整理。核心逻辑两条一是 CUDA 版本不能超过驱动上限二是 PyTorch、Torchvision、Python 三者版本要互相兼容。Torchvision 和 PyTorch 是强绑定关系0.8.1 配 1.7.0装错一个另一个大概率 import 失败。4. 在虚拟环境里装 PyTorch命令、换源与验证4.1 从官网拿安装命令别自己拼PyTorch 官网的 previous-versions 页面按版本列出了对应的安装命令找到 1.7.0 CUDA 11.0 那一行直接复制。自己拼pip install torch1.7.0很容易漏掉torchvision和 CUDA 后缀装出来是 CPU 版。典型命令长这样# 在已激活的 pytorch 环境里执行 # 注意 torch、torchvision 版本要和 CUDA 版本对应 pip install torch1.7.0cu110 torchvision0.8.1cu110 torchaudio0.7.0 -f https://download.pytorch.org/whl/torch_stable.htmlcu110是 CUDA 11.0 的编译标记没有这个后缀就是 CPU 版。-f指定 wheel 下载源官网这个地址在国内访问可能很慢。4.2 换国内源加速下载慢就把源换成国内的。原文列了几个镜像我常用清华和阿里云# 临时指定源安装推荐不影响全局配置 pip install torch1.7.0cu110 torchvision0.8.1cu110 -i https://pypi.tuna.tsinghua.edu.cn/simple # 或者永久配置默认源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple常用镜像地址镜像地址清华https://pypi.tuna.tsinghua.edu.cn/simple阿里云https://mirrors.aliyun.com/pypi/simple/中科大https://pypi.mirrors.ustc.edu.cn/simple/豆瓣https://pypi.douban.com/simple提示换源只加速下载不改变包内容。但要注意有些镜像同步有延迟如果某个版本在镜像上找不到换回官方源再试一次。4.3 装完必须验证的三行代码装完不验证等于没装。激活环境后依次执行conda activate pytorch # 激活环境 python # 进入 Python 交互import torch # 导入 PyTorch print(torch.__version__) # 输出 torch 版本应为 1.7.0 print(torch.cuda.is_available()) # 输出 True 表示 GPU 可用 print(torch.cuda.get_device_name(0)) # 输出显卡型号确认认到了卡torch.cuda.is_available()返回False是最常见的翻车点原因通常有三类装成了 CPU 版命令里漏了cu110、CUDA 和驱动版本不匹配、或者环境变量没配好。先看torch.__version__里有没有cu后缀没有就是装错包了重装。4.4 让 PyCharm 用上这个环境PyCharm 里新建项目时解释器选已存在的 conda 环境路径指向envs/pytorch/python.exeWindows或envs/pytorch/bin/pythonLinux/macOS。选好后 PyCharm 底部的终端会自动激活该环境跑脚本时用的就是这套库。如果之前项目用的是 base 解释器记得在 Settings → Project → Python Interpreter 里改过来否则会出现命令行能跑、PyCharm 报 ModuleNotFoundError的玄学问题。5. 避坑排查五个我踩过的真实问题5.1 现象torch.cuda.is_available()返回 False原因最常见是装成了 CPU 版命令里没有cu110后缀其次是 CUDA 版本超过驱动上限。解决先print(torch.__version__)看有没有cu标记没有就卸载重装带 CUDA 后缀的版本有标记但仍 False用nvidia-smi确认驱动支持的 CUDA 上限必要时降 CUDA 版本。5.2 现象conda 装包卡在 Solving environment原因conda 的依赖求解器在包多的时候会非常慢这是它的老毛病。解决能用 pip 装的就用 pip尤其在虚拟环境里pip 和 conda 混用虽然不推荐但装 PyTorch 这类 wheel 包时 pip 更快。或者换mamba替代 conda求解速度提升明显。5.3 现象PyCharm 里 import torch 报 ModuleNotFoundError原因PyCharm 项目解释器还指向 base 或其他环境没切到新建的 pytorch 环境。解决Settings → Project Interpreter 里手动指定envs/pytorch/下的 python 可执行文件确认列表里能看到 torch。5.4 现象训练时报CUDNN_STATUS_NOT_INITIALIZED原因cuDNN 版本和 CUDA 不配套或者 cuDNN 文件没拷全。解决核对 cuDNN 与 CUDA 的对应关系8.0 配 11.0重新解压 cuDNN 并把三个目录的文件完整覆盖到 CUDA 安装目录别只拷 dll 漏了 lib。5.5 现象装完 PyTorch 后其他库报版本冲突原因在 base 环境里装过东西或者多个环境共用了同一个 pip 缓存导致装串。解决确认当前激活的是目标环境提示符有(pytorch)用pip list看已装包冲突严重就删环境重建。这也是为什么一开始就强调别在 base 里装。6. 进阶技巧用 environment.yml 一键复现整套环境手动敲命令配环境换台机器就得重来一遍还容易漏。更稳的做法是把环境导出成environment.yml别人拿到文件一条命令就能复现。导出命令# 导出当前环境的所有依赖 conda env export -n pytorch environment.yml # 只导出显式安装的包更干净推荐 conda env export -n pytorch --from-history environment.yml--from-history只记录你手动conda install过的包不带一堆自动解析出来的传递依赖跨平台兼容性更好。拿到 yml 的人执行conda env create -f environment.yml就能得到同名环境。但要注意pip 装的包比如带cu110的 PyTorch不会完整写进 conda 的 yml常见做法是在 yml 里加一段pip:节点手动补上name: pytorch channels: - defaults dependencies: - python3.8 - pip - pip: - torch1.7.0cu110 - torchvision0.8.1cu110这样别人conda env create时会自动走 pip 装 PyTorch。我现在的习惯是每配好一个新环境第一件事就是导出 yml 存进项目仓库换机器、重装系统、交接给同事都靠它。从那以后我每次配完环境都强制走一遍导出和重建验证确认 yml 真能跑起来才敢删本地环境。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑