资讯详情

资讯详情

深度学习环境配置详解:Anaconda与PyTorch、PyCharm集成

1. 别急着装先把整套方案的逻辑理清楚我在帮不少人处理深度学习环境的时候发现大家最容易卡住的点不是代码本身而是环境配置这一步Anaconda装好了PyTorch死活跑不起来PyCharm里明明选了Python解释器却提示找不到Torch。所以这篇文章不打算只扔几条安装命令而是把整个流程背后的逻辑讲清楚照着做基本一次能过。先说明这套组合解决什么问题。Anaconda是Python发行版加包管理器它自带conda命令能创建相互隔离的Python环境PyTorch是目前最主流的深度学习框架之一PyCharm是日常写Python代码的IDE。三者的关系可以这么理解Anaconda负责管环境和基础包PyTorch负责提供深度学习能力PyCharm负责让你写代码、调试、跑脚本。而我们最终的目标是让一个干净、可复现的环境中同时存在指定版本的Python和PyTorch并且能被PyCharm正确识别和调用。这套配置适合谁刚接触深度学习的学生、想在自己电脑上跑模型的研究人员也包括只是想试试PyTorch却不想搞乱系统Python环境的朋友。只要你的机器能装AnacondaWindows、macOS还是Linux都没问题步骤差异会在后面单独说明。很多人习惯直接在base环境里pip install torch图省事。但实际项目一多就会踩坑项目A需要PyTorch 1.x项目B需要2.x版本互相冲突卸载重装搞得焦头烂额。所以从一开始就养成用conda虚拟环境的习惯才是省时间的根本。这也是“创建新的环境”这一动作存在的意义。接下来我们按“装Anaconda → 建环境 → 装PyTorch → 配PyCharm”这条主线逐个击破。2. 从零开始Anaconda安装与环境准备2.1 下载与安装要点Anaconda的安装包可以直接从官方站点下载尽量选择最新版本不要选太老的。Windows用户注意安装包是.exemacOS用户有图形安装包和命令行安装包两种Linux用户拿到的是.sh脚本。安装过程中有两个关键选项我强烈建议你认真看安装路径不要包含中文和空格。很多同学图省事装到D:\软件\Anaconda3后面创建环境时各种诡异报错根本原因就是路径里的中文导致编码问题。推荐装到纯英文路径比如D:\Anaconda3或C:\Users\你的用户名\anaconda3。是否加入PATH环境变量。安装界面会问你是否把Anaconda加入PATH默认是不勾选只注册到Anaconda Prompt。这里我的建议是Windows用户不要直接勾选加入PATH而是使用Anaconda Prompt或安装完成后用conda init命令初始化。原因在于直接加入PATH会让系统Python和conda的Python产生优先级冲突以后命令行里运行python到底调谁都没法保证排查起来特别麻烦。2.2 验证安装与基础配置装完后打开Anaconda PromptWindows或终端macOS/Linux输入conda --version能输出版本号就说明安装成功。接着执行conda init它会把conda初始化代码写入shell配置文件这样以后在系统终端里也能直接用conda命令。Windows如果没有特殊需求直接用Anaconda Prompt即可。然后建议先更新一次conda本身conda update -n base conda有些时候更新会耗时较长如果当前版本够用也可以跳过。但为了保证后续包索引正常至少执行一次。关于下载慢的问题这里提一个常规做法更换conda的国内镜像源。操作方式是写入配置文件.condarc或者执行类似这样的命令以常见镜像站为例conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes需要说明的是镜像源地址可能随时间变化以对应镜像站当前提供的有效地址为准。更换镜像后创建环境和安装包的速度会有明显提升。2.3 认识base环境安装完成后默认的Python环境叫base。这里要提醒一句不要把base环境当成工作环境。base环境相当于系统的“初始系统”你后续创建的任何环境都依赖它。如果在base里乱装包不说版本冲突光是包数量膨胀、依赖关系复杂就能让你后面寸步难行。正确的做法是base只做基础维护所有实际项目都放到独立环境里。我自己见过最多的问题就是有人直接在base里运行conda install pytorch torchvision -c pytorch然后用了半年突然发现conda update --all时把PyTorch相关的某个底层库升级坏了。虽然最终也能修但浪费的时间够重新建三次环境了。所以从现在开始每次做项目先conda create形成肌肉记忆。3. 创建独立环境conda环境管理与Python版本选择3.1 为什么一定要新建环境你可能会想我直接装PyTorch不就好了为什么要先建环境因为PyTorch对Python版本、底层库版本都有特定要求而你的电脑上可能还有别的项目依赖某个固定版本的Python。如果所有包都挤在一个环境里A项目要升包B项目就会被破坏。虚拟环境的本质就是隔离让每个项目拥有独立的依赖空间互不干扰。说的直白一点conda环境就像一个一个独立的房间每个房间有自己的一套家具和布局不会因为隔壁房间换了一张桌子而受影响。而base环境是走廊我们只是站在走廊上进入某个房间尽量不堆放杂物在里面。3.2 创建环境的具体命令打开终端执行conda create -n pytorch python3.9这里的pytorch是环境名称可以自定义建议用项目名或框架名比如torch_env、dl_project都行。python3.9指定Python版本如果你想用3.8、3.10直接改数字即可。创建过程中会提示安装一些基础包输入y确认。完成后激活环境conda activate pytorch看到命令行前缀变成(pytorch)就说明你已经进入这个环境了。这时候再执行python --version会看到对应的版本号比如Python 3.9.x。其他常用命令一并列出来conda env list # 查看所有环境 conda deactivate # 退出当前环境 conda remove -n pytorch --all # 删除环境 conda env remove -n pytorch # 同样删除环境3.3 如何选择Python版本选择Python版本不是随便拍的要看PyTorch官方支持哪些版本。PyTorch的安装页上会标注当前版本支持的Python范围比如常见的PyTorch 2.x支持Python 3.8到3.12左右。一般建议选择3.9或3.10这两个版本稳定性高兼容的第三方库也多。如果一定要用最新的Python 3.13需要先确认PyTorch是否发布了对应的构建版本不要盲目追新。同样如果你需要跑某个特定项目比如某些老项目依赖Python 3.7那就单独建一个python3.7的环境。这也是conda比pip直接装更灵活的地方可以同时存在多个不同Python版本的环境按项目切换。3.4 环境管理的几个实战技巧环境名最好和项目绑定比如pytorch2、tf115一眼能看出用途。创建环境后立刻执行conda env export environment.yml导出依赖清单将来换机器可以一键重建。如果创建环境时提示CondaHTTPError或SSL错误多半是镜像配置问题。可以先恢复默认源再重新添加正确地址。不要频繁创建又删除环境每次操作都会扫描包索引浪费时间。尽量提前规划好。我自己有个习惯建环境时只指定python3.9不一次性装一堆包。这样做的好处是可以先确认干净环境没问题然后再逐步安装PyTorch、PyCharm的包依赖出问题也容易定位。4. 安装PyTorchCPU版与GPU版的关键决策4.1 先搞清楚你的机器有没有可用GPU安装PyTorch前先确定一件事你用CPU跑还是用GPU跑如果只是学习、跑一些小型模型CPU版完全够用如果要做模型训练尤其是图像、大模型相关强烈建议用GPU版。GPU版安装前需要确认三个条件NVIDIA显卡、合适的显卡驱动、CUDA版本。在Windows上打开命令行执行nvidia-smi如果显示一张显卡信息表说明驱动已装好顶部能看到CUDA Version。这里要特别注意nvidia-smi显示的CUDA版本是驱动支持的最高CUDA版本不一定是你要装的那个CUDA toolkit版本。PyTorch官网安装命令中标注的CUDA版本比如cu118表示CUDA 11.8cu121表示CUDA 12.1。只要你的驱动最高支持版本大于等于这个版本号就能正常用。如果执行nvidia-smi提示“不是内部或外部命令”说明驱动没装好或者没有NVIDIA显卡。这种情况下可以直接走CPU版安装不要折腾GPU。macOS用户需要注意Apple Silicon芯片的机器要用PyTorch的MPS加速安装命令与CPU版类似但通常还需要额外的渠道。这里不做细说建议去PyTorch官网查当前推荐命令。4.2 CPU版安装命令CPU版安装最简单在已经激活的环境里执行pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu注意这里用了--index-url意思是强制从PyTorch官方CPU版本源下载。如果直接用pip install torch默认从PyPI下载在某些情况下得到的版本可能包含CUDA依赖体积很大但实际没用GPU白白占硬盘空间。所以安装CPU版时建议加上这个参数。网上也有用conda install pytorch torchvision torchaudio cpuonly -c pytorch的方式也可以但conda源有时候会比较老pip反而更直接。二选一即可。4.3 GPU版安装命令GPU版安装有两种常见方式conda和pip。先说conda方式。在激活的环境里执行假设你的驱动支持CUDA 11.8conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia这种方式会把CUDA、cudnn等配套库都通过conda安装管理依赖兼容性较好但下载体积很大而且conda解析依赖的时间漫长有时候等十分钟还没开始下载。优点是稳定适合不想折腾依赖关系的人。再说pip方式。PyTorch官方提供了配置好的源你只需要根据CUDA版本选择命令例如pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118这里的cu118是对应CUDA 11.8的版本。如果你驱动支持CUDA 12.1就把cu118换成cu121。具体以PyTorch官网当前推荐命令为准因为版本号会更新。我个人更倾向用pip方式装GPU版。原因有三个第一pip下载速度快不会长时间卡在依赖解析第二PyTorch官方通过pip发布的wheel包已经把所有运行库都打进去了不需要额外装CUDA toolkit第三如果你有虚拟环境pip不会污染全局环境。只要保证显卡驱动版本足够新基本一次就能装对。4.4 安装后验证是否成功不管装的是CPU还是GPU版都要做一次完整验证。在环境里执行python进入交互环境后依次输入import torch print(torch.__version__) print(torch.cuda.is_available())如果torch.__version__能打印版本号说明PyTorch安装成功。然后重点看torch.cuda.is_available()输入True说明GPU版可用接下来就可以调用GPU训练模型了。输入False说明当前安装的是CPU版或者GPU环境没被PyTorch识别到。先确认是否装了GPU版的wheel包再看驱动和CUDA版本是否匹配。另外还可以查看GPU设备信息和算力print(torch.cuda.device_count()) print(torch.cuda.get_device_name(0))如果输出显卡型号说明PyTorch能够正常访问GPU。这里有个常见的坑如果你安装了GPU版但torch.cuda.is_available()返回False大概率是驱动版本太旧或者你的机器混装了多个CUDA相关的库。解决方法很简单先把驱动升级到官方最新版然后再试。不要贸然重装PyTorch。4.5 CPU版和GPU版的差距CPU版和GPU版在代码层面几乎没有区别唯一的差别就是设备调用。日常调试代码CPU版足够真正训练GPU快很多。你可以在同一份代码里用条件判断来自动选择设备device torch.device(cuda if torch.cuda.is_available() else cpu)这样即使换了一台没有GPU的机器代码也能正常跑只是速度慢一些。这个写法是深度学习项目里最常见的设备选择模板。5. 配置PyCharm让代码跑在刚创建的环境上5.1 安装PyCharmPyCharm分社区版Community和专业版Professional社区版免费对Python开发足够用了。深度学习项目不涉及远程开发的话社区版完全够用。下载地址就是JetBrains官网安装时一路下一步即可注意安装路径同样不要有中文。5.2 在PyCharm中配置conda环境打开PyCharm新建一个项目注意项目路径也不要带中文。进入File → Settings → Project → Python Interpreter点击右上角的Add Interpreter在下拉列表里选择Conda Environment。接下来的关键是选择“Existing environment”也就是已有环境而不是“Create new”。为什么因为我们已经手动创建了pytorch环境直接让它关联到这个环境就行。然后点击...按钮找到之前创建的pytorch环境中的python.exe文件。具体路径通常在Anaconda安装目录\envs\pytorch\python.exe。例如D:\Anaconda3\envs\pytorch\python.exe选中后PyCharm会加载这个解释器并显示环境里已安装的包列表。如果你发现列表里有torch说明PyCharm已经关联到正确的环境。点击OK后PyCharm下方会出现正在解释器更新的进度条。完成后新建一个Python文件输入import torch print(torch.__version__)点击运行按钮如果控制台输出版本号说明PyCharm已经成功使用上了你配置的环境。5.3 PyCharm终端与conda环境的互通有人会遇到一种情况PyCharm里代码运行正常但打开PyCharm自带的Terminal输入conda activate pytorch却没反应。这是因为PyCharm的Terminal默认加载的是系统Shell没有初始化conda。解决办法是在PyCharm的Settings里找到Tools → Terminal确认Shell路径指向系统默认的Shell类型。然后手动在Terminal里执行conda activate pytorch如果还是不行就在Terminal里先执行conda init重新加载Shell配置后再激活环境。对于Windows建议把PyCharm的Terminal改造成使用Anaconda Prompt作为Shell具体方式是在Terminal的Shell path处填入Anaconda Prompt的启动脚本路径。不过这种操作在不同版本里差异较大最简单的做法还是主力写代码时用PyCharm里的Python解释器指向conda环境需要跑命令行工具时用独立的Anaconda Prompt执行两边互不干扰。5.4 项目级解释器的选择建议在多项目场景下每个项目都应单独指定解释器。PyCharm允许每个项目绑定不同的conda环境项目A绑定pytorch项目B绑定tf互不影响。新建项目时在解释器设置里选好就行。这点特别适合同时学习多个框架的人换项目时不用反复卸载重装包。一个容易被忽略的坑是用PyCharm打开旧项目时它可能会自动复用当前默认解释器结果import torch失败。所以你新建项目或打开已有项目后第一件事就是检查Python Interpreter到底是指向哪个环境。这个习惯能帮你省下大量排查时间。6. 常见问题与排查经验实录6.1 安装过程中最常见的报错把这两年大家遇到比较多的报错整理成一张表方便按图索骥现象可能原因解决办法conda命令找不到conda未初始化在Anaconda Prompt里执行conda init或把conda安装路径放入PATH创建环境一直卡住网络波动或镜像源失效换一个可用镜像源或者用手机热点试一次pip install torch很慢默认PyPI源慢临时指定PyTorch官方源见上文命令import torch报错提示找不到指定模块环境没激活或者pip装到了别的环境先conda activate pytorch再用pip list确认包在哪个环境torch.cuda.is_available()为False装的是CPU版或驱动版本过旧确认安装命令是否带cu118等参数更新显卡驱动PyCharm里没有torchPython解释器选错了环境检查Project Interpreter重新关联到envs\pytorch\python.execonda create时提示SSL错误.condarc配置了无效镜像清除.condarc里的错误地址或直接删除该文件恢复默认6.2 包版本冲突的实战排查思路有一天某同学跑import torch时提示OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.这类问题通常是因为环境中安装了多个含OpenMP的库比如NumPy和PyTorch都带了不同版本的OpenMP运行时导致冲突。常规解决思路是更新相关库或者调整环境变量让它们使用同一个运行时。这种问题虽然少见但遇到时别慌先从包依赖关系入手排查。更通用的一条原则任何import阶段报错先用pip list查看是否安装了多个同名包再用conda list查看包依赖树必要时新建一个干净环境重新安装。别在坏环境里反复修很多时候新建环境比修复更快。6.3 硬盘与内存空间问题PyTorch的GPU版安装包经常超过2GB加上Anaconda本身、其他依赖包整套环境最大可能占用七八GB空间。安装前最好确认一下剩于空间是否充足。内存方面CPU版加载模型比较吃内存GPU版则需要显存。如果模型在GPU上跑不起来报错“CUDA out of memory”可以适当减小batch size或者用with torch.no_grad()减少显存占用。这些都是后话但提前知道能少走弯路。6.4 路径中文和空格问题很多人装Anaconda时图方便直接改名成“Python环境”之类的文件夹后面PyCharm解析解释器时就会遇到奇奇怪怪的编码问题。如果你已经踩了这个坑最简单的办法是卸载重装Anaconda路径用纯英文。虽然听起来很暴力但确实是最省时间的做法。同理项目名、代码目录也尽量别用中文和空格。6.5 用conda还是pip装PyTorch我的最终建议安装PyTorch时如果你已经有明确的GPU和CUDA需求用pip装官方wheel包最直接如果你想省心让conda自动处理底层依赖用conda也完全可行。我个人建议是平时折腾环境的朋友用pip图省事的朋友用conda。但无论用哪种方式环境都一定要独立出来。就算你在base环境里装成功了我也建议推倒重来建一个干净环境再装一遍。这个过程会让你把环境结构摸清楚后面遇到任何问题都不至于两眼一抹黑。最后再分享一个小技巧每次装好新环境在项目文件夹里放一个requirements.txt或environment.yml记录下当前环境的依赖。换电脑、换服务器的时候执行conda env create -f environment.yml就能一键还原整个环境。这个习惯让我省了无数次重新配置环境的痛苦。动手配置的时候如果中途卡住不要急着怀疑人生按文章里的顺序回头检查一遍Anaconda是否初始化、环境是否激活、PyTorch安装源是否选择正确、PyCharm解释器是否选对。这几个环节只要一个不对后面每一步都会连锁出错。祝顺利跑通第一个PyTorch程序。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →