ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Anaconda Navigator更新闪退排查与conda虚拟环境配置

Anaconda Navigator更新闪退排查与conda虚拟环境配置 Anaconda 这个名字做数据、做科研、做深度学习的人基本绕不开。但真正让人头疼的从来不是装不上而是装完之后那一堆连带问题Navigator 更新完打不开了、conda 和 pip 混着用把环境搞成一锅粥、PyCharm 死活找不到解释器、服务器上装完conda命令不生效。我自己前前后后在不同机器上装过十几遍 Anaconda从 Windows 笔记本到没有图形界面的 Linux 服务器踩的坑足够写一本小册子。这篇就把 Anaconda Navigator 更新这条线作为切入点把下载、安装、环境变量、虚拟环境、PyTorch 配置、PyCharm 联动、报错排查这一整条链路串起来讲一遍尽量写成那种照着做就不会翻车的版本。不管你是刚接触 Python 环境管理的新手还是被某个报错卡了半天想找答案的老手应该都能从里面捞到点有用的东西。1. 装之前先想明白Anaconda 到底替你管了什么很多人对 Anaconda 的理解停留在一个装好 Python 的安装包这个认知本身没错但太浅了。搞不清楚它内部的层级关系后面遇到问题就只能靠重装解决而重装恰恰是最低效的手段。所以这一节先把结构捋清楚。1.1 三个层级发行版、conda、Navigator把 Anaconda 拆开看其实是三层东西叠在一起。最底层是Anaconda 发行版也就是你下载的那个几百兆的安装包比如Anaconda3-2024.10-1-Windows-x86_64.exe这种。它一次性地把一个 Python 解释器、几百个常用的第三方库、以及配套的工具链塞进你的硬盘。这个安装包是快照装上之后里面的 Python 版本就固定了不会自己变。中间层是conda一个包管理器和环境管理器。它负责装包、卸包、建虚拟环境、切换环境。conda 和 pip 最大的区别在于conda 管的不只是 Python 包还能管 Python 解释器本身、C 编译出来的二进制库、甚至非 Python 的依赖比如 CUDA 运行时。这就是为什么搞深度学习的同学更倾向于用 conda 装 PyTorch——它能把显卡驱动之外的那一套依赖一起给你配齐。最上层才是Anaconda Navigator一个图形界面外壳。它把 conda 的命令行操作包装成点按钮还内置了 Jupyter Notebook、Spyder、VS Code 这些应用的启动入口。Navigator 本身不是一个独立软件它依赖 conda 的 Python 环境运行所以在 base 环境被搞坏的时候Navigator 往往是第一个受害者。这三层的关系决定了排查问题的方向界面打不开问题大概率在下面两层。Navigator 闪退的时候你去重装 Navigator 通常只能治标真正该查的是 conda 版本和 base 环境的状态。1.2 为什么会有人装完就后悔Anaconda 有个被吐槽很多年的点体积大。完整版装完加上缓存占掉三到五个 G 是很正常的。原因在于它预装了太多你可能一辈子用不到的科学计算库Anaconda 官方这么做的逻辑是宁可多给也别让你装到一半卡住毕竟对一个刚入门的人来说编译某个库失败是最劝退的事情。另一个后悔点是PATH 污染。安装向导里有一个勾选项问你要不要把 Anaconda 加进系统 PATH 环境变量官方默认是不勾的很多人图方便手动勾了结果系统里原来装的 Python、或者某些工具自带的 Python 就被顶掉了出现我明明装了 3.10命令行走出来是 3.7这种诡异现象。我个人的做法是Windows 上坚决不勾那个选项日常操作全部走 Anaconda PromptLinux 上则用conda init让 shell 自动接管因为服务器上基本不会有别的 Python 干扰反而需要自动化。这两种策略的差异会在第 3 节展开。提示如果你已经在 Windows 上勾了 PATH也不用慌。可以到系统属性 - 环境变量里把 Anaconda 相关的几条路径删掉然后重新打开命令行验证python --version是否回到了原来的版本。1.3 什么时候该考虑 Miniconda说句实在话如果你只是偶尔跑个脚本或者服务器磁盘紧张Miniconda 是更克制的选择。它只包含 conda 和 Python 本身不预装任何第三方库装完大概几百兆。后续需要什么自己conda install就行。代价是没有 Navigator也没有预装的 Jupyter、Spyder。对于习惯图形界面的新手来说上手门槛会高一点。我的判断标准很简单如果你连命令行都不想碰装完整版 Anaconda如果你已经能熟练敲pip install直接上 Miniconda。这篇后面的内容两者都适用只是 Navigator 相关的部分只针对完整版。2. 安装包怎么挑版本号与镜像站实操第一节讲清楚了概念接下来就是动手。下载这一步看着简单实际上版本挑错、下载源选错后面会多出不少麻烦。2.1 版本号里每一位是什么含义Anaconda 的安装包命名格式是这样的Anaconda3-2024.10-1-Windows-x86_64.exe拆开看Anaconda3表示这版绑定的是 Python 3.x 系列2024.10是发行日期代表 2024 年 10 月发布的快照后面那个-1是同一个月内的第几版修订通常用来修 bug再往后是平台和架构Windows-x86_64就是 64 位 WindowsLinux 平台对应Linux-x86_64苹果的 M 系列芯片则是MacOSX-arm64。这里有几个容易踩的点日期号越大不等于越适合你。新版本带的是更新的 Python 和更新的库但一些老项目、特别是依赖 C 扩展的科研库在新 Python 上可能还没有预编译好的 wheel装的时候会现场编译慢不说还容易失败。稳妥做法是选一个发布半年到一年、社区反馈比较多的版本。-1这种修订号别忽略。同一日期号的初版有时会有已知 bug官方会补一版修订。如果看到某个版本有-0和-1两个优先选后者。架构千万别选错。Windows 上有x86_6464 位和x8632 位之分现在几乎没有理由再用 32 位了。苹果用户要注意区分x86_64Intel 芯片和arm64M 系列芯片选错的话要么装不上要么靠转译跑性能差一截。2.2 国内下载为什么更推荐走镜像站官网的下载服务器在境外直连的速度有时候只有几十 KB/s一个 700MB 的安装包能下到你怀疑人生。国内高校和云厂商维护的镜像站是同步官网内容的速度可以跑到满带宽。清华的 TUNA 镜像站是国内用得最多的一个它的 Anaconda 归档目录路径大致是https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/打开这个目录会看到一个按字母和数字排序的文件列表名字特别长找起来有点费眼睛。有个小技巧这个页面支持参数排序和筛选。比如加上查询参数可以让它按修改时间倒序排列最新的安装包就浮到最上面了省得你去翻页。类似?CMOD这样的参数组合C表示排序字段O表示升降序具体含义各家页面略有差异你也可以直接用浏览器自带的页内搜索去匹配关键字。除了归档目录镜像站一般还有miniconda和anaconda/pkgs这两个重要目录。前者放的是 Miniconda 的安装包后者是 conda 的软件包仓库——这个 pkgs 目录就是后面配置.condarc时要填的地址先记住它。国内的镜像选择不止清华一家其他的高校镜像和云厂商镜像内容基本一致速度上因地区和运营商而异。经验之谈哪个快就用哪个不用迷信某一家配置的时候也没必要把所有镜像都堆上去频道多了反而容易因为同步不一致导致依赖解析失败。2.3 校验一下再装能省掉一半玄学问题下载完安装包花十秒钟核对一下大小和校验值能挡掉很多装到一半报错的情况。镜像站的文件一般在大文件旁边会带一个校验文件格式大概是# Linux / macOS 下核对 shasum -a 256 Anaconda3-2024.10-1-Linux-x86_64.sh # Windows PowerShell 下核对 Get-FileHash .\Anaconda3-2024.10-1-Windows-x86_64.exe -Algorithm SHA256把输出结果和官方给出的值对一下一致就说明文件完整。不一致基本就是下载中断或者被网络中间环节改了删掉重下别硬着头皮装。注意别用迅雷之类的多线程下载工具去抓这类安装包有时候拼接出来的文件会出问题表面看着像下完了装到后半段才报错。用浏览器原生下载或者curl、wget最稳。3. 三个平台的安装实操安装这一步不同平台的注意事项差别挺大。Windows 是图形向导考验的是勾选项判断Linux 服务器是命令行安装考验的是你有没有把 shell 初始化做对。3.1 Windows安装向导里那几个勾到底怎么选双击安装包之后会走一个不算短的向导流程关键节点有这么几个。安装类型这一步会让你选Just Me还是All Users。如果这台电脑只有你一个人用选Just Me装到用户目录下不需要管理员权限如果是公司电脑或者多人共用的机器选All Users装到公共目录。对绝大多数人来说前者就够了。安装路径这一步很关键。默认路径长这样C:\Users\你的用户名\anaconda3理论上能用但我不推荐。原因有三一是用户名里可能有中文或者空格某些老工具处理不了这种路径二是 C 盘空间紧张的时候很尴尬三是后面配置 IDE 的时候路径短一点眼睛舒服。我一般改成D:\anaconda3或者D:\dev\anaconda3这种。路径里绝对不要有中文、空格和特殊符号这是硬性要求不是建议。高级选项这一步有两个勾是最容易出问题的地方。第一个是Add Anaconda3 to my PATH environment variable。官方在这个选项下面用红字标注不推荐理由是可能和系统里已有的软件冲突。这个警告是认真的Windows 上请不要勾。你需要用 conda 的时候从开始菜单打开Anaconda Prompt就行那个窗口会自动把环境变量配好。第二个是Register Anaconda3 as my default Python。这个勾上问题不大它会帮你把 Anaconda 的 Python 注册成系统的默认 Python别的软件调用 Python 时会找到它。如果你机器上已经有别的 Python 环境并且正在用就别勾如果是新机器勾上省事。装完之后从开始菜单找到 Anaconda Prompt敲一行conda --version python --version两条都有正常输出安装就算成功了。这一步一定要做别等后面用 Navigator 出问题了才回来确认。3.2 Linux 服务器静默安装与 shell 初始化服务器上没有图形界面Navigator 基本用不上装 Anaconda 的目的就是拿到 conda 和 Python 环境。把.sh安装包传到服务器上scp或者wget都行然后# 赋予执行权限 chmod x Anaconda3-2024.10-1-Linux-x86_64.sh # 开始安装-b 是静默模式-p 指定安装路径 bash Anaconda3-2024.10-1-Linux-x86_64.sh -b -p $HOME/anaconda3-b这个参数很重要它让安装过程不再交互式提问包括那个拉到底才出现的许可协议确认适合脚本化部署。-p指定安装位置装在用户目录下不需要 root 权限也避免了对系统目录的污染。如果你的服务器有共享存储而且多人要用也可以装到/opt/anaconda3这类公共位置但要处理好权限。安装脚本跑完之后最后一屏通常会说需要你关掉终端重开或者手动 source 一下。这里就是新手最容易卡住的地方——装完了敲conda提示 command not found。原因是安装脚本虽然往~/.bashrc里写了初始化代码但当前这个 shell 还没重新加载配置。执行source ~/.bashrc或者在 Bash 里直接跑一遍初始化命令$HOME/anaconda3/bin/conda init bash source ~/.bashrcconda init的作用是往 shell 的启动文件里注入一段脚本让每次开新终端时自动加载 conda 的函数定义顺便把 base 环境激活。你的服务器如果用 Zsh 而不是 Bash把bash换成zsh就行。提示如果conda init之后每次开终端都自动进 base 环境而你不想这样可以执行conda config --set auto_activate_base false。这个设置特别适合服务器场景避免你登录进去意外在一个不该用的环境里跑任务。3.3 环境变量到底要不要手工配关于Linux 下要手动设置 Anaconda 环境变量这个说法网上流传很广但我想把它说清楚正式做法是用conda init不是手改 PATH。手改的做法一般是在~/.bashrc里加这么一行export PATH/home/你的用户名/anaconda3/bin:$PATH这行确实能让conda、python这些命令可用但它有个副作用它把 Anaconda 的 bin 目录直接塞进了 PATH 最前面所有 Python 相关的命令都会被 Anaconda 覆盖而且绕过了 conda 的环境切换机制。你会发现在这种配置下conda activate的行为可能不太正常。conda init写进去的是一段 shell 函数定义逻辑是按需把当前环境的路径插到最前面比硬改 PATH 要优雅得多。所以正确的顺序是先用conda init实在有问题再考虑手改 PATH 作为临时方案。还有一些同学遇到过环境变量里混进了奇怪内容的 warning比如引号或者变量拼接错误导致的warning。这种一般是因为~/.bashrc里被反复追加了多份 conda 初始化代码或者某一行引号没配对。排查方法很简单grep -n conda ~/.bashrc看看文件里是不是有多段重复的初始化块。有的话留一段、删掉其余然后source ~/.bashrc重新验证。4. Navigator 更新与闪退常见毛病一次说透这一节是本篇的重点。Navigator 用久了会出现两类问题一是提示有更新更完就出问题二是直接闪退或者卡在启动界面。这两件事的根因其实高度相关。4.1 更新的正确顺序别一上来就点按钮Navigator 的图形界面里有个更新按钮点下去它会更新自己。这个操作的坑在于Navigator 是被 conda 管理的包它自己更新自己的时候依赖关系可能被搅乱。更稳的做法是关掉 Navigator打开 Anaconda PromptWindows或者终端Linux/macOS按顺序执行# 第一步先更新 conda 本体它是地基 conda update -n base conda # 第二步更新 Navigator conda update -n base anaconda-navigator # 第三步如果还想把 base 里其他包一起升用这条 conda update --all这里第三步要谨慎。conda update --all会把 base 环境里所有包升到最新听起来很爽但它破坏了依赖解析的稳定性——某些包之间有版本约束全升可能导致冲突。我的习惯是base 环境尽量保持干净只装 conda、navigator 这一类工具所有业务依赖都放到独立虚拟环境里。这样 base 出问题的概率低很多真要全升也不心疼。如果你确实想要一个确定的 Navigator 版本可以用带版本号的安装方式conda install -n base anaconda-navigator2.6.0版本号以你实际环境的可用版本为准先用conda search anaconda-navigator看看有哪些可选。4.2 闪退与卡在 loading applications 的排查路径Navigator 启动时做的事情大致是加载配置、读取环境列表、联网拉取可安装应用的元信息、渲染界面。这几个环节任一失败都可能表现为闪退或者界面卡住。症状一点了图标没有任何反应或者窗口一闪就没了。这种情况下图形界面什么都不告诉你得去命令行里启动才能看到报错信息# Windows 在 Anaconda Prompt 里执行 anaconda-navigator # 或者 python -m anaconda_navigator命令行里会打印出真实的异常栈。常见的几类原因和对应处理现象可能原因处理方式导入某个 Qt 相关模块失败PyQt / qt 包版本错乱conda install -n base pyqt5重装界面库提示 conda 版本过旧或 API 不匹配Navigator 和 conda 版本脱节先升 conda再升 navigator卡在加载配置配置文件损坏清理缓存目录后重启网络超时拉取应用元信息失败配置国内频道镜像症状二界面卡在 loading applications。这是最经典的一个。它在做的事是联网获取应用列表网络不通或者超时就一直转圈。解决办法是给 conda 换成国内镜像源。在用户目录下新建或编辑.condarc文件Windows 在C:\Users\你的用户名\.condarcLinux/macOS 在~/.condarc内容大致是channels: - 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写完之后执行conda clean -i清掉索引缓存然后重新打开 Navigator。症状三配置文件或缓存坏了。Navigator 会在用户目录下存一份自己的配置和缓存路径是~/.anaconda/navigatorWindows 对应%USERPROFILE%\.anaconda\navigator。这个目录坏掉的表现很随机有时候是界面白屏有时候是按钮点不动。处理方式是把整个目录改名做个备份让它重新生成# Linux / macOS mv ~/.anaconda/navigator ~/.anaconda/navigator.bak anaconda-navigator --resetWindows 下把.anaconda\navigator文件夹重命名然后在 Anaconda Prompt 里执行anaconda-navigator --reset。4.3 说到底Navigator 还值不值得用讲真等你熟悉了命令行之后Navigator 的价值会迅速下降。它最大的好处是给新手一个可视化的环境管理入口能直观看到有哪些环境、每个环境装了哪些包。但它的启动速度、稳定性都不如直接敲命令而且在没有图形界面的服务器上根本用不了。我现在的习惯是本地机器上保留 Navigator偶尔用来看一眼环境列表所有实际操作用命令行完成。这样既能享受图形化的便利又不会被它的稳定性问题绑架。对刚入门的同学我的建议是先熟悉几个核心命令——conda create、conda activate、conda install、conda env list、conda remove——这五个用熟了Navigator 出不出问题都不影响你干活。5. 虚拟环境与 PyTorch 环境配置环境管理是 Anaconda 真正发挥作用的地方也是新手最容易搞混的部分。这一节从建环境讲到装 PyTorch。5.1 建环境时那几个参数怎么定一个标准的建环境命令长这样conda create -n pytorch-env python3.10逐个参数拆解-n pytorch-env是给环境起名字。名字建议用有意义的英文短名别用env1、test2这种过两个月你自己都想不起来是干嘛的。不要用中文和空格某些工具链处理不了。python3.10指定 Python 版本。这个参数建议永远带上不指定的话 conda 会给你装一个新版本而这个新版本可能和你要用的深度学习框架还不兼容。深度学习这块Python 版本跟着框架的官方支持走稳妥区间一般是 3.9 到 3.11。如果需要指定环境的存放位置比如放到数据盘可以用-p /path/to/env代替-n 名字但说实话用名字管理更省心。建好之后激活conda activate pytorch-env你会看到命令提示符前面的括号从(base)变成了(pytorch-env)。退出用conda deactivate。查看所有环境用conda env list删环境用conda remove -n pytorch-env --all。注意删环境这个命令的--all参数不能省否则 conda 只会删掉环境里的某个包而不是整个环境。这个坑我见过太多人踩。5.2 conda 源和 pip 源要分开配这是个高频误区很多人以为配了一个镜像源就万事大吉了结果conda install走的是镜像pip install还是直连境外慢得让人崩溃。原因是conda 和 pip 用的是两套完全独立的配置体系。conda 的源写在第 4 节提到的.condarc里。pip 的源要用它自己的命令配置pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn第一条设置默认索引地址第二条把域名加入信任列表某些环境下不加这两条会有 SSL 相关告警。配置完可以用pip config list确认。也可以临时指定不写进配置pip install 某个包 -i https://pypi.tuna.tsinghua.edu.cn/simple这里有个经验在同一个环境里尽量不要 conda 和 pip 混着装同一个包的依赖链。比如用 conda 装了 numpy又用 pip 装了一个依赖 numpy 的包pip 可能会把 conda 装的那份 numpy 覆盖成 PyPI 上的版本两份包的元数据记录不一致后面conda list显示的版本和实际导入的版本对不上排查起来非常痛苦。我的原则是能用 conda 装就用 conda 装conda 里实在没有的特别是一些小众的、纯 Python 的包再用 pip。装之前先用conda search 包名确认一下有没有。5.3 PyTorch 安装与验证PyTorch 的安装命令不是固定的它跟你的显卡、CUDA 版本强相关必须去官网的安装选择器生成不能随便复制别人博客上的命令。大体形式有这么几种# 走 conda 装带 CUDA 支持的版本 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia # 走 pip 装用官方指定的索引 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 纯 CPU 版本体积小适合没有独显的机器 conda install pytorch torchvision torchaudio cpuonly -c pytorch装完之后一定要验证别装完就开始跑代码python -c import torch; print(torch.__version__); print(torch.cuda.is_available())输出应该先打印版本号再打印True或False。如果第二行是False而你机器上确实有 NVIDIA 显卡那说明装的是 CPU 版本或者 CUDA 版本和驱动不匹配。这时候别急着卸载重装先把版本对齐关系理一遍检查项命令说明驱动支持的最高 CUDAnvidia-smi右上角显示的 CUDA Version 是驱动上限框架编译时的 CUDApython -c import torch; print(torch.version.cuda)必须小于等于驱动上限显卡是否可见nvidia-smi列表里能看到显卡型号常见错误是把驱动上限和框架版本搞反了。比如驱动只支持到 CUDA 11.8你装了一个编译在 CUDA 12.x 上的 PyTorchcuda.is_available()就是False。正确做法是装一个低于驱动上限的版本而不是去升级驱动服务器上驱动往往不是你说了算。6. PyCharm 联动 Anaconda环境配好了怎么让 PyCharm 用上它是另一个高频问题。这一步出错的表现通常是PyCharm 里 import 报红但命令行里明明能跑。6.1 解释器到底该指向哪个文件PyCharm 配置解释器的路径是File - Settings - Project - Python Interpreter点齿轮图标选Add然后选Conda Environment再选Existing environment最后在输入框里指向你的环境路径。这个路径在不同系统下不一样# Windows D:\anaconda3\envs\pytorch-env\python.exe # Linux / macOS /home/用户名/anaconda3/envs/pytorch-env/bin/python注意要指向的是envs/环境名/下面的 Python不是 Anaconda 根目录下的 Python。指向根目录的 Python 就等于在用 base 环境你装的 PyTorch 在另一个环境里自然 import 不到。如果下拉框里干脆没有你建的环境通常是 PyCharm 没找到 conda 的可执行文件。这时候要手动指定 conda 的位置# Windows 通常是 D:\anaconda3\condabin\conda.bat # Linux / macOS 通常是 /home/用户名/anaconda3/bin/conda注意 Windows 上指向的是condabin目录下的conda.bat不是Scripts目录下的conda.exe。这个细节坑过不少人。6.2 三个高频坑和对应处理坑一PyCharm 内置终端不激活环境。PyCharm 底部的 Terminal 默认可能走的是系统 shell里面敲conda activate提示命令不存在。解决办法是在 Settings 里搜 Terminal把 Shell path 改成对应的 shell或者在 Settings 的 Tools - Terminal 里勾上激活虚拟环境的选项。更省事的办法是直接用系统终端别在 IDE 里纠结。坑二改了环境但运行配置没跟着变。PyCharm 的 Run Configuration 里有一项 Python interpreter有时候它锁定的是旧环境。改了项目解释器之后记得去 Run - Edit Configurations 里确认一下运行配置用的是哪个解释器。坑三路径里有中文导致 pip 装包失败。这个属于老生常谈但每年都有人中招。环境和项目路径里有中文时一些包在编译阶段会因为编码问题直接失败报错信息还特别隐晦。从建环境那天起就把路径规范好比事后救火轻松得多。7. 报错速查与彻底卸载最后一节整理两类内容一是常见报错的对照排查二是当你想彻底重来时的干净卸载流程。7.1 一份可以对着查的报错表报错信息片段大概率原因处理方向cannot import name xxx from yyy包的版本升级后 API 变了查该包的版本变更记录调整导入方式或降版本ModuleNotFoundError: No module named xxx包没装或装到了别的环境conda list确认检查当前激活的是哪个环境ImportError: DLL load failed二进制依赖缺失或被覆盖重装相关包别混用 conda 和 pipconda: command not foundshell 未初始化执行conda init后 source 配置文件PackagesNotFoundError频道里没这个包换频道或改用 pipSolving environment: failed依赖冲突新建一个干净环境重装别在旧环境里硬解这里拿第一条举个例子因为这类报错最容易被误判成环境坏了重装吧。有位同学跑地球物理正演脚本时遇到这样的报错ImportError: cannot import name mesh from simpeg他第一反应是环境装错了准备删掉重来。实际上这不是环境问题而是SimPEG 这个库在新版本里做了模块拆分网格相关的部分被移到了discretize这个独立包里原来从simpeg顶层导入mesh的写法自然就失效了。正确的排查顺序应该是这样先确认当前装的版本conda list simpeg或pip show simpeg。去查这个版本的变更说明看mesh这个子模块去哪了。按照新版本的用法改导入语句比如改成从新的包导入或者用新的类名。如果短期内不想改代码可以考虑退回到 API 没变的旧版本pip install simpeg旧版本号。这个例子的普适价值在于看到 ImportError先怀疑版本和 API再怀疑环境。重装一个环境要花十几分钟查一次版本记录可能只要两分钟。7.2 想彻底重来的时候卸载要删干净哪几样Anaconda 的卸载比安装更需要耐心残留的配置文件和缓存会在你重装后继续生效导致新装的还是同样的问题。Windows 上的顺序是这样。先用官方提供的清理工具清掉配置文件conda install anaconda-clean anaconda-clean --yes这个工具会把散落在用户目录下的 conda 相关配置文件挪到备份目录。然后从控制面板 - 程序和功能里卸载 Anaconda最后手工检查几个目录是否还残留D:\anaconda3 # 主安装目录 C:\Users\你的用户名\.conda # 环境配置 C:\Users\你的用户名\.condarc # 频道配置 C:\Users\你的用户名\.anaconda # Navigator 配置缓存Linux 上多一步把~/.bashrc里conda init注入的那一段代码删掉也就是以# conda initialize 开头、# conda initialize 结尾的那一整个块。删完之后重开终端conda命令应该就不存在了。环境变量里如果还有手工加过的 Anaconda 路径一并清理。我自己现在的做法是不用官方卸载器直接手动删目录加清配置反而更快也更干净。前提是你确认没有别的软件依赖这套 Python。7.3 一点个人心得折腾环境这么多年我最后悔的事情之一是没有在第一次装完 Anaconda 之后就把.condarc和 pip 源配好。那会儿每次装包都在等下载慢得心态崩。后来把镜像配齐之后装一个深度学习环境从半小时降到五分钟。另一个体会是环境要小而专。我现在一台机器上会有七八个环境每个环境只服务一个项目互不干扰。看着占空间但出问题的时候直接删掉重建就行不会有删了它别的项目就跑不起来的顾虑。base 环境则当成一个只放管理工具的空壳尽量不往里装业务包。这套习惯养成之后我几乎再没有遇到过环境彻底崩了要重装 Anaconda的情况。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表