资讯动态

Anaconda虚拟环境搭建:conda创建、换源、IDE接入与排错

发布时间:2026/9/29 7:36:41 来源:尧图企业网站定制
Anaconda 这三个字很多人在课程表、教程视频、师兄师姐的群里都见过但真正动手装的时候往往卡在第一步下载哪个版本、装完要不要勾 PATH、装完之后怎么创建虚拟环境、创建好的环境又怎么在 PyCharm 或者 VSCode 里用起来。这些问题单看每一个都不难凑在一起就成了一锅粥新手最常见的结局是——系统里塞了三个 Python命令行敲python出来的是哪一个自己都不知道。这篇内容就是围绕 Anaconda 虚拟环境搭建这一条主线把版本选择、安装细节、镜像源配置、conda 创建虚拟环境的完整命令流、IDE 接入、环境迁移和典型报错排查一次讲透。不管你是刚接触 Python 环境搭建的零基础用户还是已经被依赖冲突折磨过的开发者都能直接照着做做完手里会有一个干净、可复现、能随手删掉重来的开发环境。1. 动手之前先想清楚为什么要用虚拟环境1.1 全局环境到底会踩什么坑我刚学 Python 那会儿所有的包都往系统自带的 Python 里装pip install一条命令走天下觉得挺爽。直到有一天一个做数据清洗的项目需要 pandas 1.3另一个跑模型的脚本依赖 pandas 2.0 里某个新参数pip install装完 A 项目的依赖B 项目直接报AttributeError。改回去A 又崩。来回折腾一个下午才意识到问题不在代码而在于两个项目共用了一个环境。这就是虚拟环境存在的根本原因依赖隔离。每个项目有自己独立的包目录、独立的 Python 解释器版本互不干扰。A 项目锁定 numpy 1.24B 项目用 numpy 1.26物理上互不影响。除此之外还有三个隐性好处一是可复现把环境导出成一份environment.yml换台机器或者交给同事一键还原出几乎一致的环境二是可试错想装个新库怕搞坏现有配置新建一个环境装完再删成本几乎为零三是不污染系统macOS 和 Linux 上系统 Python 被大量系统工具依赖乱装包有概率把系统工具搞挂这个后果比报错难处理得多。新手最容易忽略的一点是虚拟环境隔离的不只是 pip 包还包括 Python 解释器本身的版本。有的老项目只能在 3.7 上跑新框架又要 3.11 以上你不可能在一台机器上同时维护两个全局 Python 版本但可以建两个虚拟环境各用一个。这一点在后面的实操里会体现得很明显。1.2 conda、venv、uv 到底该选哪个Python 圈子里做环境隔离的工具不止一个常见的有venvPython 标准库自带、condaAnaconda/Miniconda 提供、以及近两年很火的uv。它们不是替代关系而是各有适用场景我用一张表把差别摆出来工具能管 Python 版本能管非 Python 依赖速度适合场景venv否否中纯 Python 项目机器上已有合适版本conda是是CUDA、编译器、MKL 等较慢数据科学、深度学习、需要装二进制依赖uv是可下载解释器否极快追求速度、依赖结构干净的 Python 项目这里有个关键点很多人不知道conda 不只是 Python 包管理器。像 PyTorch 这类框架除了 Python 包本身还依赖 CUDA 运行时、cuDNN、MKL 数学库这些非 Python 的二进制组件conda 可以一起装、一起管理版本匹配。你要是用 pip 装就得自己保证驱动、CUDA、cuDNN 三方版本对得上新手在这上面翻车的概率非常高。所以我的建议很直接做深度学习、数据分析、科学计算优先用 conda 建环境纯后端、纯脚本类项目用 venv 或 uv 更轻快。两种方式并不冲突你完全可以在 conda 环境里用 pip 装那些 conda 源里没有的包。至于有人问能不能只用 Miniconda答案是完全可以Miniconda 就是 Anaconda 的精简版只带 conda 和 Python其余包按需装硬盘占用小很多对老笔记本更友好。提示不要在同一台机器的同一个环境里混用 conda 和 pip 安装同一个包的依赖链比如先用 conda 装了 numpy又用 pip 装了个强依赖特定 numpy 版本的库很容易出现版本被 pip 悄悄覆盖的情况。混用时建议先用 conda 装能装的最后再用 pip 收尾。2. Anaconda 下载与安装版本和选项怎么定2.1 下载渠道与版本号的选择逻辑Anaconda 的官方发行版是滚动更新的命名格式形如Anaconda3-2024.10-1前面是年份月份后面是补丁号。很多人纠结要不要装最新版我的实际经验是新手跟最新正式版走没问题但如果你要复现别人的项目先看对方文档里写的 Python 版本。Anaconda 每个发行版会绑定一个默认 Python 版本比如 2024 年的几个版本默认带 Python 3.11 或 3.12。如果你要做的项目明确要求 3.8 或 3.9那也不用专门去找老安装包因为 conda 后面可以随时创建指定版本的环境安装包自带的 Python 版本只影响base环境。反倒是安装包本身选新的更省事因为新版 conda 的依赖求解器更快处理复杂依赖时卡死的情况更少。渠道上认准两个地方就够官方网站的下载页以及国内的镜像站归档目录。官网下载对国内网络不太友好几百兆的安装包经常下到一半断掉这时候可以直接从镜像站的 archive 目录取安装包速度差别是数量级的。文件命名里的Windows-x86_64表示 64 位 WindowsMacOSX-arm64是苹果 M 系列芯片Linux-x86_64是常见的 64 位 Linux。选错了装不上这一步别看花眼。还有一个常被忽略的细节安装包体积大概在 800MB 到 1GB 之间装完占用 3 到 5 GB 空间。如果你的 C 盘只剩几个 G建议换到其他盘或者直接改用 Miniconda安装包只有 100MB 左右后面需要什么装什么。2.2 安装向导里那三个勾选项的真实含义Windows 上的安装向导会问几个问题其中三个最关键我逐个说清楚它们的后果。第一个是安装类型Just Me还是All Users。Just Me装到当前用户目录下不需要管理员权限路径里会带用户名All Users装到C:\ProgramData下需要管理员权限多用户共用。个人电脑无脑选Just Me就行出问题的概率最低。第二个是安装路径。路径里绝对不能有中文、空格和特殊符号。我见过有人装到D:\我的软件\Anaconda 3结果后面某些包在编译时找不到路径报一堆莫名其妙的错排查半天才发现是空格和中文惹的祸。建议就写D:\Anaconda3或者C:\Anaconda3这种干净路径。第三个是那个让人纠结的复选框Add Anaconda3 to my PATH environment variable。官方推荐是不勾理由是可能覆盖系统里已有的 Python但实际用起来不勾就意味着你只能在开始菜单里的Anaconda Prompt里敲 conda 命令用普通 cmd 或者 PowerShell 会提示conda 不是内部或外部命令。对新手来说这反而更困惑。我的做法是勾上然后自己确认系统 PATH 里原来的 Python 路径是否还在如果不需要原来的勾上最省事。至于Register Anaconda3 as my default Python这个选项一般跟着前面的 PATH 勾选自动变化装完之后你可以随时用conda config改不用在这里纠结。2.3 Windows、macOS、Linux 三端安装的差异点Windows 是图形化向导一路下一步就行重点就是上面三个选项。装完之后如果 cmd 里敲 conda 没反应先关掉再重新打开终端PATH 环境变量的刷新需要新会话才能生效。macOS 有两种情况Intel 芯片和 Apple Silicon。下载时要选对架构M 系列芯片选 arm64 版本。安装方式是双击.pkg走图形向导或者用命令行bash Anaconda3-xxxx-MacOSX-arm64.sh安装。用命令行方式时安装脚本最后会问是否运行conda init选 yes它会自动往你的.zshrc或.bash_profile里写初始化代码。装完之后新开一个终端窗口命令行提示符前面会出现(base)看到这个就算成功了。Linux 基本只有命令行安装一种方式适合服务器场景# 上传安装包后执行-b 表示批处理模式-p 指定安装目录 bash Anaconda3-2024.10-1-Linux-x86_64.sh -b -p $HOME/anaconda3 # 初始化 shell 配置 $HOME/anaconda3/bin/conda init bash # 让配置生效 source ~/.bashrc服务器上装完退出重新登录一次conda --version能输出版本号就说明环境变量写对了。Linux 上有个坑多用户服务器里如果每个人都装了 Anaconda.bashrc里会堆一长串初始化代码容易互相打架这种情况建议用conda init生成的块各自管理不要手动往 PATH 里硬塞。注意如果你在 Linux 服务器上没有 root 权限安装路径一定选自己的家目录别去碰/opt或/usr/local否则安装到一半会报权限不足且卸载时残留文件很难清理。3. 镜像源配置把下载速度从龟速拉回正常3.1 为什么换源是最值得先做的一步Anaconda 默认的包源在国外国内直连下载速度经常只有几十 KB/s装个 PyTorch 能等半小时中途断流还会留下损坏的缓存下次装直接报错。换源之后同样的包通常几分钟就能装完而且镜像站会同步绝大多数常用包覆盖日常开发完全够用。换源要分两件事做conda 源和pip 源。这两套是独立的配置体系只配 conda 源用 pip 装包时还是慢只配 pip 源conda 装包照样卡。两个都配好才算真正打通。国内常用的镜像有清华大学 TUNA、中科大、阿里云等其中清华的 Anaconda 镜像同步比较及时社区文档也全新手用它最不容易出问题。配置方式有两种命令行一条条加或者直接写配置文件。命令行方式直观但容易加乱配置文件方式一次写清楚推荐后者。Windows 下配置文件在C:\Users\你的用户名\.condarcLinux 和 macOS 在~/.condarc文件不存在就自己新建一个。3.2 .condarc 与 pip 源的完整配置先说 conda 的配置文件。把下面内容整段粘进.condarcchannels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud nvidia: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud几个字段说明一下。default_channels把默认源整体替换成镜像地址这样即使某个包写的是defaults也会走镜像custom_channels用来接管conda-forge、pytorch这些第三方频道装深度学习框架时特别有用show_channel_urls: true会在安装时打印每个包来自哪个源排查问题的时候一眼就能看出是不是走了镜像。改完执行conda clean -i清掉旧的索引缓存再跑conda config --show channels确认配置读进去了。可以顺手测一下速度conda create -n speedtest python3.10 numpy pandas如果几十秒内就建好说明源配对了。如果卡在Solving environment很久那多半是依赖求解的问题不是源的问题后面第 6 节会专门讲。pip 源就一行命令pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cnLinux 服务器上如果只想给当前用户配就在用户目录下执行想给所有用户配加--global参数写到/etc/pip.conf。macOS 上默认 pip 命令可能指向系统 Python记得先conda activate到目标环境再执行否则你会把源写进系统 Python 的配置里用的时候自己都找不到。3.3 换源之后反而装不上的情况配镜像源不是万能的有两种情况会翻车。第一种是包版本落后。镜像同步有延迟某个包刚发布两小时的版本镜像上可能还没有这时候会报PackagesNotFoundError。解决办法是临时指定官方源装这一个包conda install -c https://repo.anaconda.com/pkgs/main 包名或者干脆等一天再装。别急着把.condarc改回去改来改去最后自己都忘了当前是什么配置。第二种是HTTPS 证书相关的报错典型信息是SSLError或者CondaHTTPError。这种情况通常是本地网络环境的证书校验或者企业内网的安全策略导致的。排查顺序是先确认时间同步是否正常系统时间错了证书必然校验失败再尝试用 HTTP 地址替换 HTTPS 试试最后检查是否有企业网络的访问策略限制。如果是公司内网直接问 IT 要一份可用的源列表比自己在网上瞎试高效得多。提示conda clean -a会清掉所有缓存包和索引能释放几个 G 的空间但下次装包要重新下载。我一般两三个月清一次或者在磁盘告急的时候清。清理前确认没有正在进行的安装任务。4. conda 创建与管理虚拟环境的完整命令流4.1 从零创建一个指定版本的环境创建环境的命令格式是conda create -n 环境名 python版本号比如conda create -n py310 python3.10敲下去之后 conda 会先求解依赖、列出将要安装的包清单等你输入y确认。这里有两个实用参数-y可以跳过确认直接装脚本化的时候有用-n后面跟的环境名建议用英文、短、能看懂比如cv、nlp、web别用test1、abc这种环境一多自己都记不住哪个是哪个。创建时可以顺手带上常用包一步到位conda create -n dl python3.10 numpy pandas matplotlib jupyter -y比先建空环境再一个个装快得多因为依赖求解只做一次。创建完成后激活环境conda activate dl成功的话命令行提示符前面会从(base)变成(dl)。这一步看起来简单但新手最常卡在这里——在 Windows 的 cmd 里敲conda activate报CommandNotFoundError原因通常是没做conda init。解决方式是打开Anaconda Prompt它自带初始化执行conda init cmd.exe conda init powershell然后关掉终端重新打开问题基本就解决了。4.2 查看、退出、删除与克隆的日常操作日常用得最多的几条命令我列成一张表方便查操作命令说明查看所有环境conda env list带星号的是当前激活的环境查看某环境装了哪些包conda list -n dl不激活也能查退出当前环境conda deactivate连敲两次回到 base删除整个环境conda remove -n dl --all慎用不可恢复克隆环境conda create -n dl2 --clone dl用于做实验前的备份重命名环境conda rename -n dl dl_backup需要较新版本 conda清理缓存conda clean -a释放磁盘空间这里面我最想强调克隆这个操作。当你已经调好一个能跑通项目的环境接下来想试一个新库别直接往原环境里装先--clone一份出来在新环境里折腾。搞崩了大不了删掉新环境原环境毫发无损。这个习惯帮我省了无数次重装的时间。重命名环境在旧版 conda 里没有rename子命令得用clone加remove两步走或者装conda-rename插件。如果你敲conda rename报错说不认识这个命令先跑conda --version看版本再决定用哪种方式。还有一点删除环境之后磁盘空间不会立刻释放因为包缓存还在pkgs目录里。真要回收空间得配合conda clean -a。4.3 环境默认装在 C 盘怎么办conda 默认把环境建在安装目录下的envs文件夹里如果 Anaconda 装在 C 盘那么每建一个环境少则几百兆、多则几个 G 全往 C 盘塞。深度学习环境一个就 5G 往上三四个下来 C 盘直接飘红。解决办法是修改环境的默认存放路径把envs_dirs和pkgs_dirs两个配置改掉conda config --add envs_dirs D:\conda_envs conda config --add pkgs_dirs D:\conda_pkgs执行完可以用conda config --show envs_dirs查看新加的路径会排在列表第一位也就是优先使用的位置。注意envs_dirs是列表可以加多个conda 会按顺序找。这里有个坑已经创建的环境不会自动搬过去只对之后新建的环境生效。老环境想迁移要么删掉重建要么用conda create --clone到新路径下再删旧的。还有一个更隐蔽的问题如果你把D:\conda_envs加进去之后发现新环境还是建在 C 盘检查一下是不是之前手动在 C 盘的环境名冲突了或者.condarc里envs_dirs的顺序被别的配置顶掉了。Linux 服务器上同理把路径设成/home/用户名/conda_envs这类不占系统盘的位置能避免系统盘被写满导致服务异常。4.4 环境导出与迁移的三种方案把环境交给别人、换机器、上服务器这是必然会遇到的需求。三种方案按场景选。方案一导出 yml 文件适合对方有网络、能从源装包的情况。# 导出包含精确版本号 conda env export environment.yml # 跨平台导出去掉平台相关的 build 号 conda env export --no-builds environment.yml # 对方还原 conda env create -f environment.yml--no-builds这个参数很重要。默认导出的文件里带一堆build字段形如numpy1.24.3py311h5f7f5b2_0这个后缀和平台强绑定Windows 导出的拿到 Linux 上装多半找不到匹配的 build直接报错。去掉之后只保留版本号跨平台成功率高很多。方案二conda-pack 打包适合目标机器完全没网络。conda install -c conda-forge conda-pack conda pack -n dl -o dl.tar.gz # 目标机器上解压后激活 mkdir -p ~/envs/dl tar -xzf dl.tar.gz -C ~/envs/dl source ~/envs/dl/bin/activate conda-unpack这套流程把整个环境连二进制文件一起打包解压即用不依赖网络。缺点是包体积大而且跨操作系统不可用——Linux 上打的包只能在 Linux 上用。方案三pip 离线包适合只有 pip 依赖、需要精确控制的场景。# 有网络的机器上下载所有依赖的 whl 文件 pip download -d ./offline_pkgs -r requirements.txt # 拷到目标机器后离线安装 pip install --no-index --find-links./offline_pkgs -r requirements.txt这个方式最灵活但也最容易因为平台差异出问题。注意pip download时要加上和目标机器一致的平台参数比如--platform manylinux2014_x86_64 --python-version 3.10 --only-binary:all:否则下载下来的是你当前平台的包拷过去装不上。5. 把 conda 环境接进 PyCharm 和 VSCode5.1 PyCharm 里配置 conda 解释器的完整路径环境建好了代码编辑器里还得指明用哪个解释器否则 PyCharm 会自作主张新建一个 venv你装到 conda 环境里的包它一个也看不见。操作路径是File → Settings → Project → Python InterpretermacOS 在PyCharm → Preferences下点右上角齿轮或Add Interpreter选择Conda Environment然后勾Existing environment在Interpreter那一栏里找到你环境的python可执行文件。Windows 上的路径形如D:\conda_envs\dl\python.exeLinux 和 macOS 上是~/conda_envs/dl/bin/python。选完之后 PyCharm 会读一遍环境里的包列表装过的 numpy、pandas 都会列出来看到这个就说明接对了。如果列表是空的或者提示找不到 conda 可执行文件检查两点一是conda命令本身在终端里能不能用二是 PyCharm 里 conda 可执行文件的路径有没有指定对Windows 是Scripts\conda.exeLinux/macOS 是bin/conda。这两个填对基本不会出问题。新建项目的时候PyCharm 有一个Previously configured interpreter选项可以直接复用已有环境比每次新建 venv 省事得多。团队协作时我会把环境名和 python 版本写在 README 里新人照着建一个同名的解释器路径完全一致省去沟通成本。5.2 VSCode 选择解释器的几个细节VSCode 本身不带环境管理靠 Python 扩展。装好Python扩展之后按CtrlShiftP打开命令面板输入Python: Select Interpreter列表里会列出所有被识别到的 conda 环境名字后面通常带conda标签。选中的环境会记在项目的.vscode/settings.json里只对当前工作区生效这一点比 PyCharm 更适合多项目并行。如果列表里找不到你的环境通常是三个原因之一环境建在非常规路径下扩展没扫到VSCode 是在环境创建之前打开的需要重启窗口Python 扩展配置里禁用了 conda 环境的自动发现。解决方式是手动输入解释器路径命令面板里选Enter interpreter path然后填完整路径。填入之后可以按CtrlShift开一个新终端终端左上角会显示当前激活的环境名conda env list也能看到星号在正确的位置。VSCode 的集成终端有个细节值得说默认终端是 PowerShell 时某些版本的 conda 初始化脚本在 PowerShell 里执行策略受限会提示无法加载文件...因为在此系统上禁止运行脚本。这时候在 PowerShell 里执行一次Set-ExecutionPolicy -Scope CurrentUser RemoteSigned确认之后重启 VSCode激活就正常了。5.3 终端显示 (base) 和环境错乱的排查装完 Anaconda每次打开终端都自动激活(base)有人觉得碍眼。关掉自动激活的命令是conda config --set auto_activate_base false改完之后 base 环境仍然存在只是不再自动激活需要时手动conda activate base即可。另一个常见困扰是命令行里的 python 和环境里的 python 不是同一个。表现是明明激活了环境pip install装的包却在另一个 Python 里。排查方法是在终端里依次执行which python # Linux/macOS where python # Windows pip -V看输出的路径是否指向conda_envs\你的环境名\。如果不是说明 PATH 顺序有问题或者环境没真正激活。Windows 上还有一种情况是装了多个 Python 并且都写进了 PATH这时候where python会输出好几行排在前面的是实际生效的那个。注意不要在激活了 A 环境的情况下用pip install装到一半再conda activate B两个终端的 PATH 是相互独立的混着操作很容易把包装错地方。养成习惯装包之前先敲一次which python或者where python确认位置。6. 常见报错与排查速查表6.1 命令找不到与激活失败conda 不是内部或外部命令、conda: command not found是最常见的第一个坎。原因分两种安装时没勾 PATH或者勾了但终端没有重新打开。前者去Anaconda PromptWindows里执行conda init或者手动把三个路径加进系统环境变量D:\Anaconda3 D:\Anaconda3\Scripts D:\Anaconda3\Library\bin三个路径缺一个都可能出问题尤其是Library\bin少它的话 import 某些库会报 DLL 加载失败。Linux 上则是往~/.bashrc里加export PATH$HOME/anaconda3/bin:$PATH然后source ~/.bashrc。CommandNotFoundError: Your shell has not been properly configured to use conda activate这个报错本质是 shell 没有执行 conda 的初始化脚本。Windows 上跑conda init cmd.exe或者conda init powershellLinux/macOS 上跑conda init bash或conda init zsh然后重开终端。注意conda init会往你的 shell 配置文件里写一段代码如果之前手动加过 PATH可能重复执行之后打开配置文件看一眼有没有冗余项。6.2 依赖求解卡死与包找不到Solving environment: failed或者卡在Solving environment十几分钟不动是 conda 最让人崩溃的体验。原因通常是依赖约束过于复杂求解器在尝试各种组合。几个可用的对策第一指定具体版本号。conda install pytorch让求解器自己去挑版本范围太大conda install pytorch2.0.1把范围收窄速度快很多。第二减少不必要频道。频道路数越多候选组合越多求解越慢。.condarc里保留defaults和必要的conda-forge就够了别加一堆第三方频道。第三换用 libmamba 求解器新版 conda 已经默认启用了如果你的版本比较老可以手动装conda install -n base conda-libmamba-solver conda config --set solver libmamba实测下来同一个环境用默认求解器要几分钟换 libmamba 之后十几秒就出结果差距非常明显。PackagesNotFoundError: The following packages are not available from current channels一般有两个原因包名拼错了这是最常见的比如sklearn其实是scikit-learn或者当前频道里确实没有这个包。后者加上-c conda-forge再试实在没有就用 pip 装。6.3 问题速查表现象可能原因处理方式conda 命令找不到未初始化或 PATH 未包含conda init或手动加三个路径activate 报 CommandNotFoundshell 未配置对应 shell 执行conda initSolving environment 卡住依赖约束复杂指定版本号、减少频道、换 libmambaPackagesNotFoundError包名错或频道缺包核对包名、加-c conda-forgeSSLError / HTTPError证书或网络策略检查系统时间、换源、问内网管理员PermissionError权限不足或杀软拦截用管理员运行、临时关杀软装了包但 import 失败装到了别的环境which python确认位置C 盘空间告急环境默认在安装目录改envs_dirs和pkgs_dirs导出 yml 在别的机器装不上build 号平台绑定用--no-builds重新导出终端一直显示 (base)自动激活开关conda config --set auto_activate_base false这张表我建议存一份新手期能省下大量搜索时间。里面每一条我都实际遇到过尤其是装了包但 import 失败和C 盘空间告急这两条几乎人人都踩。7. 一套可以直接抄的 PyTorch 环境搭建流程7.1 从空环境到跑通验证的最小步骤前面讲的都是零件这里把它们串成一条完整的流程。以搭建 PyTorch 环境为例从零开始# 1. 建环境Python 版本按框架要求选PyTorch 2.x 建议 3.10 以上 conda create -n pytorch python3.10 -y # 2. 激活 conda activate pytorch # 3. 确认当前 pip 和 python 指向本环境 which python pip -V # 4. 安装 PyTorchpytorch-cuda 的版本要和你的显卡驱动匹配 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia -y # 5. 验证 python -c import torch; print(torch.__version__); print(torch.cuda.is_available())第 4 步的pytorch-cuda11.8不是随便写的。你的显卡能支持的 CUDA 版本上限由驱动决定用nvidia-smi查看右上角的CUDA Version比如显示 12.1那你可以装 11.8 或 12.1 的版本但装 12.4 就会报错。这一步选错torch.cuda.is_available()会返回 False代码只能跑在 CPU 上训练速度差几十倍。如果 conda 装不上或者速度太慢改用 pip 也可以官方给的命令形如pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118注意这里的cu118对应 CUDA 11.8cu121对应 12.1要和驱动匹配。pip 装的包不经过 conda 的依赖管理好处是快坏处是 CUDA 运行时会被一并打包进 whl 里环境体积会大一些但省心。验证通过之后把环境导出成文件存档conda env export --no-builds pytorch_env.yml这样哪天环境玩崩了删掉重建只要一条conda env create -f pytorch_env.yml。7.2 环境搭完之后值得养成的几个习惯第一每个项目一个环境环境名带项目前缀。做图像分类的项目就叫cv_cls做文本分类的叫nlp_cls一眼能看出归属。别怕环境多一个环境几个 G 是正常的硬盘比时间便宜。第二装包前先记录。我习惯在项目根目录维护一个requirements.txt每次装新包就补一行用pip freeze requirements.txt反而会把一堆间接依赖全写进去版本锁死之后换平台反而麻烦。手动维护核心依赖配合 conda 的 yml两边都有记录。第三不要把环境当仓库用。有人一个环境里装了几十个包跑什么都用这一个时间长了必然出现版本冲突。隔离的意义就在于用的时候建、不用的时候删别舍不得。第四定期conda clean -a。包缓存目录会随着时间越滚越大我见过一个用了一年多的机器pkgs目录占了 30 多个 G。清理之后再重建环境实际耗时并不会增加多少。最后分享一个我自己踩过的坑有次在服务器上跑训练环境里装了某个包的两个版本一个 conda 装的一个 pip 装的代码里 import 的时候加载的是 pip 那个老版本结果行为跟文档完全对不上查了两个小时才反应过来。从那以后我在环境里严格执行一条规则——同一个包只用一种方式装能用 conda 就用 condaconda 没有的再用 pip装完之后用conda list | grep 包名和pip list | grep 包名都查一遍确认没有重复。这个习惯看起来啰嗦但能避免大量代码明明对但结果不对的玄学问题。

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

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

免费获取报价 →
↑