尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Anaconda安装配置全链路:镜像源、虚拟环境与PyCharm对接

发布时间:2026/9/29 1:37:17

资讯中心
01
ARTICLE

Anaconda安装配置全链路:镜像源、虚拟环境与PyCharm对接

Anaconda安装配置全链路:镜像源、虚拟环境与PyCharm对接
装 Anaconda 这件事表面看就是一路点“下一步”的活真正让人翻车的全在装完之后conda命令找不到、pip 装的包在 PyCharm 里死活看不见、激活环境弹一堆 Warning、Navigator 打开又提示已有实例在运行。我在自己的 Windows 台式、实验室的 Linux 服务器、还有 MacBook 上来回装过十几遍几乎每次都会遇到一点新花样。这篇就从 anaconda 下载、安装、配国内镜像源、创建虚拟环境一路讲到和 PyCharm 对接把整条链路完整走一遍顺带把几个最容易踩的坑的排查思路讲透让第一次装的人也能一次跑通不用在搜索引擎里反复横跳。1. 先把 Anaconda 是什么搞清楚再动手装1.1 它不是一个 Python而是一整套环境管理器很多人第一次接触会误以为 Anaconda 就是“一个更大的 Python”其实它的核心是conda这个包管理器和环境管理器Python 解释器只是它附带的东西之一。装完之后你得到的是一个 Python、conda 命令、几百个预装好的科学计算包numpy、pandas、scipy、matplotlib、jupyter 之类以及一个叫 Anaconda Navigator 的图形界面。打个比方pip 像一个只管把货搬上门的搬运工包之间的版本冲突、C 语言底层依赖、编译好的二进制文件它基本不操心conda 更像是一整套带仓库管理的搬家公司它除了搬货还会替你安排好货架、检查货物之间会不会互相打架、把编译好的二进制直接给你。所以像 numpy 这种依赖底层数学库的包用 conda 装通常比用 pip 装省心得多不会动不动就让你去装 Visual C Build Tools 然后编译半小时。1.2 conda 和 pip 到底什么时候用哪个这两个不是二选一的关系实际项目里经常是一起用的但要分清主次。下面这张表是我自己总结的取舍逻辑场景推荐工具原因安装 numpy、pandas、scipy、pytorch 这类带二进制依赖的包conda直接给编译好的版本省去本地编译安装纯 Python 的第三方小库、或者 PyPI 上刚发布的新版本pip更新更快conda 源里常常滞后管理 Python 版本、隔离不同项目的依赖conda虚拟环境是它的核心能力从 GitHub 直接装的开发版pip支持 githttps 这种源注意在同一个 conda 环境里装包时尽量“先 conda 后 pip”并且不要反复来回用两个工具装同一个包。原因是 conda 有自己的依赖账本pip 装进去的包 conda 不知道后面 conda 升级或删除时可能会把 pip 装的东西一起弄乱这也是很多“环境莫名其妙坏掉”的根源。1.3 安装前必须排掉的三颗雷第一颗雷是机器上已经存在的 Python。这里要明确一点系统自带的 Python尤其是 Linux 上的/usr/bin/python3不要卸载很多系统工具依赖它删了会出大问题。你需要做的只是保证 conda 的路径在 PATH 里排在前面或者干脆用 Anaconda Prompt 这种专用终端来隔离。第二颗雷是旧版本 Anaconda 或 Miniconda 的残留。如果你之前装过又卸载得不干净新装完之后可能出现两个 conda 混在一起conda --version显示的版本和你预期的不一样。判断方法很简单装完后跑conda info看输出里的base environment和package cache路径是不是你这次设置的目录。第三颗雷是安装路径里带中文或空格。Windows 下默认装到C:\Users\你的用户名\anaconda3如果你的用户名是中文那路径里就带中文了。绝大多数包没问题但总有个别包在解析路径时会因为编码问题报错尤其是涉及 C 扩展编译的时候。稳妥做法是装到一个纯英文、无空格的路径比如D:\anaconda3。2. Windows 上从下载到首次验证的完整流程2.1 安装包从哪下、版本号怎么看anaconda 官网的下载页会自动识别你的系统给出对应安装包但大文件从官网直连下载经常断流下到一半卡住是常态。我的习惯是直接去清华镜像的归档页地址是https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/这个页面按时间倒序列出了所有历史版本你要找的是文件名形如Anaconda3-2024.10-Windows-x86_64.exe的那一类x86_64才是现在主流的 64 位版本不要手滑下成x86的 32 位包。顺便说一句搜索的人里有一大批把“下载”的拼音打成了 xaizai其实想找的就是这个归档页不用怀疑自己是不是搜错了。版本号的含义是“年份.月份”比如2024.10就是 2024 年 10 月发布的版本选一个近半年的稳定版就行没必要追最新。另外下载时注意区分 Windows、Linux、macOS 三个平台的包别下错了平台再回来找原因。2.2 安装向导每一屏该勾什么向导里的选项看着多真正需要你拿主意的就两屏。第一屏是Just Me还是All UsersJust Me装到当前用户目录不需要管理员权限卸载也干净All Users装到C:\ProgramData\anaconda3机器上所有账户都能用但需要管理员权限。个人电脑选Just Me就够了除非你是给多个人共用的机器配置。第二屏是安装路径以及下面两个复选框Add Anaconda3 to my PATH environment variable和Register Anaconda3 as my default Python。关于第一个勾官方默认是不勾的还给了一行红字提示不推荐。这背后的原因是把 conda 塞进全局 PATH 之后会和系统里已有的 Python 抢“谁是 python”这个位置导致你在普通 cmd 里敲python出来的可能是另一个解释器后面排查问题会非常痛苦。但如果你能接受这个风险勾上确实方便普通终端里直接就能用 conda。我的建议是先不勾用 Anaconda Prompt 用顺手了如果确实嫌麻烦再手动配 PATH。第二个勾Register as default Python可以勾上让.py文件双击时默认用 Anaconda 的 Python 打开。2.3 装完之后的四步验收安装向导跑完只是第一步真正确认装好没装好要靠命令验证。打开开始菜单里的Anaconda Prompt依次跑下面四条conda --version conda info python --version conda list第一条确认 conda 本身可用输出的应该类似conda 24.x.x第二条conda info信息量最大重点看base environment是不是你设置的路径、platform是不是win-64、channels里是不是有你不认识的源第三条确认 Python 解释器能起来第四条列出当前环境里已装的包如果能看到一长串 numpy、pandas 之类的列表说明预装包也正常。这四步里任何一步失败先别急着重装把报错原文记下来。我见过最多的情况是conda不是内部或外部命令这九成是 PATH 没配好解决方式是用 Anaconda Prompt 而不是普通 cmd或者回头把安装目录下的Scripts和condabin两个文件夹手动加进系统环境变量。2.4 Anaconda Prompt 为什么和普通终端不一样这里有个概念值得讲清楚因为它解释了很多“同一个命令在 A 里能用、在 B 里不能用”的疑惑。Anaconda Prompt 本质上就是一个普通的 cmd 窗口但它在启动时先执行了一段初始化脚本把 conda 的路径、环境变量提前设置好了。所以它天然认识conda和activate这些命令。偶尔会遇到打开 Anaconda Navigator 时一直转圈显示loading applications这通常不是坏了而是首次启动要建立包索引和应用缓存机器配置一般的话等两三分钟是正常的。如果你只是要用环境完全可以绕开 Navigator所有操作都用命令行完成速度更快也更可控。Navigator 这个图形界面我个人的使用频率极低装完之后大部分时间都在 Anaconda Prompt 里待着。3. Linux 和 macOS 上的命令行安装细节3.1 Linux 下用 .sh 脚本静默安装Linux 服务器没有图形界面安装方式是一条命令搞定。先去清华归档页下载 Linux 版的.sh文件然后bash Anaconda3-2024.10-Linux-x86_64.sh回车之后它会让你翻看许可协议一路按回车到底然后输入yes确认接着问你安装路径默认是~/anaconda3。如果这台机器是多用户共用你希望装到公共目录可以在命令里直接指定bash Anaconda3-2024.10-Linux-x86_64.sh -b -p /opt/anaconda3-b是 batch 静默模式不交互-p指定路径。这两个参数在写自动化脚本批量部署时特别有用一台台机器手点是很低效的。3.2 conda init 到底改了什么文件安装脚本最后会问你一句 “Do you wish the installer to initialize Anaconda3 by running conda init?”这里回答yes很重要。它会往你的~/.bashrc里插入一段被注释包裹的初始化代码大致长这样# conda initialize # !! Contents within this block are managed by conda init !! __conda_setup$(/root/anaconda3/bin/conda shell.bash hook 2 /dev/null) if [ $? -eq 0 ]; then eval $__conda_setup else if [ -f /root/anaconda3/etc/profile.d/conda.sh ]; then . /root/anaconda3/etc/profile.d/conda.sh else export PATH/root/anaconda3/bin:$PATH fi fi unset __conda_setup # conda initialize 如果你当时手滑选了no后面会发现conda命令找不到。解决办法有两个重新跑一次~/anaconda3/bin/conda init bash或者直接手动source ~/anaconda3/etc/profile.d/conda.sh。这里有个必须知道的操作细节改完.bashrc之后必须重新开一个终端窗口或者执行source ~/.bashrc否则当前窗口的 PATH 还是老的你依然会觉得“明明改了怎么还不行”。3.3 macOS 上的两个小坑macOS 现在默认 shell 是 zsh 而不是 bash所以它改的文件是~/.zshrc而不是~/.bashrc排查的时候别翻错文件。另外下载下来的.sh文件有时候没有执行权限直接跑会提示 permission denied先补一下权限再执行chmod x Anaconda3-2024.10-MacOSX-arm64.sh ./Anaconda3-2024.10-MacOSX-arm64.sh还有一个容易忽略的点M 系列芯片的 Mac 要选文件名里带arm64的包Intel 芯片选带x86_64的。装错了不是完全不能用而是要经过一层转译跑起来慢而且个别包会直接装不上。我之前在 M1 上误装了 x86 版本结果 conda 建环境时一直卡在 solving environment换回 arm64 版本立刻就顺了。4. 国内镜像源把下载速度从几 KB 拉回满速4.1 .condarc 应该怎么写不配镜像源的情况下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/cloudshow_channel_urls: true这一行的作用是在你安装包时把每个包实际来自哪个频道打印出来。别小看这个开关当你发现某个包怎么也装不上、报一堆找不到版本的时候看它到底去哪个源里找的是排查问题最快的一刀。改完.condarc记得跑一次conda clean -i清掉索引缓存不然 conda 可能还在用旧的缓存地址你会觉得配置根本没生效。4.2 配崩了怎么恢复默认我踩过最典型的一个坑是有一次手贱往.condarc里加了好几个源顺序还写乱了结果建环境时 conda 在第一个源里找一个包的旧版本和第二个源里的新版本反复对比卡在Solving environment上十几分钟都不出来。这种时候最快的恢复手法是把频道配置清掉重来conda config --remove-key channels conda config --remove-key default_channels conda config --remove-key custom_channels如果连这个都不想敲直接把.condarc文件删了或者重命名然后conda clean -i再重跑一次就好。这也是我的一个经验镜像源不是越全越好两三个可靠的源足够用了源太多反而拖慢依赖求解。4.3 镜像里找不到包怎么办有些包在conda 的镜像里确实没有尤其是一些更新很勤的小众库。这时候别硬耗分清情况处理如果是纯 Python 包直接用 pip 装就行pip 也可以单独配国内源比如在用户目录建一个pip.ini或者~/.pip/pip.conf指到国内的 PyPI 镜像。但要注意前面说的顺序问题尽量让 conda 管大头pip 只补它没有的那几个。还有一种情况是搜索超时conda search一个包转半天。这往往是因为search会去遍历所有频道源越多越慢。这种时候可以指定频道来搜比如conda search -c conda-forge 包名范围缩小后速度会明显改善。5. 虚拟环境Anaconda 真正值钱的部分5.1 创建、激活、退出、删除的完整命令如果你只把 Anaconda 当成一个大号 Python 用那基本等于白装。真正让它在多项目协作里不可替代的是虚拟环境。常用命令我整理成一张表方便对照操作命令创建环境并指定 Python 版本conda create -n myenv python3.11激活环境conda activate myenv退出当前环境conda deactivate查看所有环境conda env list查看当前环境已装包conda list删除整个环境conda remove -n myenv --all复制一个环境conda create -n newenv --clone myenv激活之后你的命令行提示符前面会多一个(myenv)前缀这是最直观的确认信号。很多人抱怨“我明明装了包为什么 import 不到”八成就是因为激活了 A 环境却在 B 环境里跑代码或者 PyCharm 里选的解释器根本不是这个环境。养成“先看提示符前缀再敲命令”的习惯能省掉大量排查时间。5.2 环境和解释器的路径最好心里有数conda 创建的环境默认放在 Anaconda 安装目录下的envs文件夹里Windows 是D:\anaconda3\envs\myenvLinux 是~/anaconda3/envs/myenv。每个环境内部都有独立的python.exeWindows或bin/pythonLinux/macOS以及独立的site-packages。理解了这一点很多问题就迎刃而解PyCharm 里选解释器本质上就是指定让它用哪个环境里的那个 python 可执行文件。如果你想控制环境的存放位置比如 C 盘快满了想放到 D 盘有两个办法一是在.condarc里设置envs_dirs把环境目录指向别的地方二是用-p参数在指定路径建环境例如conda create -p D:\envs\proj python3.11。第二种更灵活但代价是环境列表里的名称会变成路径conda activate时也得敲全路径取舍看你自己的习惯。5.3 环境导出和迁移别把坑留给别人项目要在另一台机器上复现靠记忆一个个装包是灾难。正确做法是把环境导出成一个 yml 文件conda env export environment.yml conda env create -f environment.yml第一台机器导出第二台机器创建。但这里有个很隐蔽的坑默认导出的 yml 里会带上每个包的精确 build 编号比如numpy1.26.4py311hdab7c0b_0。这个 build 编号是和平台强绑定的你在 Windows 导出的文件拿到 Linux 上conda 会找不到完全相同的 build直接报错。解决办法是导出去掉 build 号conda env export --no-builds environment.yml如果还要求更宽松可以只导出你自己手动装的那几个包用--from-history参数这样它会只记录你用conda install明确装过的包不把一长串依赖全写进去。5.4 激活环境时那行 Warning 到底什么意思有一类警告几乎每个人都会遇到Warning: this Python interpreter is in a conda environment, but the environment has not been activated。看到它的典型场景是你在没有先 activate 的情况下直接调用了某个环境里的 python 可执行文件比如D:\anaconda3\envs\myenv\python.exe xxx.py或者在 PyCharm 里把解释器指向了具体文件但没有正确配置。这句话的意思很直白这个 Python 确实属于某个 conda 环境但 conda 并没有把该环境“激活”所以环境变量、依赖库路径可能没设置完整跑起来可能出现包找不到的怪现象。它是警告不是错误有时候代码照样能跑但我建议别忽略它。处理方法就是老老实实先conda activate myenv再执行让环境处于被激活的状态。6. 和 PyCharm 对接解释器选错是万恶之源6.1 Conda 环境和 Existing 环境有什么区别在 PyCharm 里新建项目时配置解释器那个页面会让你选New environment、Conda Environment、Existing interpreter等选项新手最容易在这里翻车。我的建议是环境用 conda 在命令行里提前建好然后 PyCharm 里选Existing interpreter直接指向那个环境里的 python。这样做的好处是环境完全由你掌控PyCharm 只负责用不在背后偷偷帮你建一个你看不见的环境。如果你选Conda Environment并勾了自动创建PyCharm 会替你跑 conda 命令新建环境。这本身没什么问题但一旦 PyCharm 里配置的 conda 可执行文件路径不对比如指到了旧版本 Anaconda 的目录它建出来的环境就会很诡异。所以选这一项时一定要在下面的Conda executable里确认路径是你当前 Anaconda 的Scripts\conda.exe。6.2 为什么 PyCharm 里装包经常装错地方PyCharm 右下角有个解释器状态栏点开能直接装包很方便但也是最容易装错的地方。因为它默认是装到当前项目选中的解释器环境里如果你之前切换过解释器、或者项目配的是一个虚拟环境而你以为在用 base那包就装到另一个地方去了回到终端里自然import不到。排查这个问题的标准动作是三步第一步确认 PyCharm 右下角显示的解释器路径和环境名第二步确认 PyCharm 的 Terminal 窗口是否勾了Activate virtualenv勾了的话终端里激活的就是同一个环境不勾则不一定第三步两边跑一次conda list | grep 包名Windows 上用conda list后翻看对比一下。三步走完基本就能定位包到底装哪去了。6.3 Anaconda Prompt 里没有 opencv 这种情况怎么处理有读者遇到过这样的现象新建了一个环境代码里import cv2报找不到模块而 Anaconda Prompt 里也没见过 opencv 的踪影。这类问题的处理思路其实很统一先确认当前激活的环境再确认包名和安装方式。opencv 在 conda 生态里的包名是opencv或者py-opencv在 PyPI 上的包名是opencv-python这两个名字不一样很多人搜pip install opencv是装不上的。正确做法是先激活环境然后二选一conda install -c conda-forge opencv # 或者 pip install opencv-python装完再跑一遍python -c import cv2; print(cv2.__version__)验证。如果还是报错多半就是前面说的环境不一致问题此时切入点应该是“这个 python 到底是哪个”而不是继续反复重装。7. 几个高频报错的排查链路7.1 There is an instance of Anaconda Navigator already running这个提示的意思是Navigator 认为已经有一个实例在跑了所以不让你开第二个。但实际情况往往是你上次关窗口没关干净后台还挂着进程。它在 Windows 上的处理方式是打开任务管理器找到pythonw.exe或者anaconda-navigator.exe相关进程结束掉然后重新打开。我更推荐的思路是别跟 Navigator 较劲。这个图形界面本身启动就慢还容易因为缓存、网络等原因卡住绝大多数它提供的功能用命令行都能更快完成。环境的增删改查、包的安装全都是conda一行命令的事绕开它反而清净。7.2 ImportError 这类错误说明包版本和 API 变了有人遇到过这样的报错ImportError: cannot import name mesh from simpeg代码里写的是from simpeg import maps, mesh。这类错误跟 Anaconda 本身没关系但它是“环境装对了却跑不起来”的典型值得拿出来说。这类cannot import name ...的错误绝大多数情况下含义是你装在环境里的这个包它当前版本的 API 里已经不存在这个名字了。可能是这个模块在版本升级时被挪到了别的子包里也可能是从这个包里彻底拆出去了。排查思路分三步走确认版本conda list | grep simpeg或pip show simpeg看看实际装的是哪个版本。查新版本的导入方式去该包的官方文档看当前版本的导入示例看看mesh现在归属在哪个模块。这类科学计算包在版本迭代中把功能拆分到独立包的情况非常常见导入路径变了但功能还在。处理方式二选一要么按新版本文档改代码里的导入语句要么把包锁到你原来那份代码兼容的旧版本比如pip install simpeg0.x.x。说句实话这类问题更本质的教训是环境一定要锁版本。这就是前面讲environment.yml的意义所在把依赖版本固定下来别人拿到你的项目才能一键跑通不会明天就因为你升级了一个包全崩了。7.3 环境彻底装坏了怎么卸载重来环境玩崩是常事别慌也别急着重装 Anaconda 整个大包多数时候删掉坏环境重建就行conda env remove -n 坏掉的环境名 --all conda create -n 新环境名 python3.11如果连 conda 本身都坏了才考虑重装。重装之前一定要把旧环境、旧配置清干净不然装完还是各种怪问题。清理的步骤是先跑conda install anaconda-clean然后执行anaconda-clean --yes清理配置文件再通过控制面板正常卸载程序最后手动删掉残留的安装目录和用户目录下的.conda、.condarc、.anaconda这几个文件夹。Windows 上还要检查一下系统环境变量里有没有遗留的 Anaconda 路径有就删掉。Linux 上没有控制面板直接删安装目录rm -rf ~/anaconda3或你当初指定的路径然后去~/.bashrc里把那段 conda initialize 的代码块整段删掉重新开终端就干净了。8. 我个人的一些实操体会装 Anaconda 这件事真正决定体验好坏的分水岭不在安装本身而在两个选择要不要把它塞进全局 PATH以及有没有用虚拟环境隔离项目。第一个选择决定了你后面排查问题时会不会被“到底在用哪个 python”折磨第二个选择决定了你半年后回头跑一个老项目时是五分钟跑通还是折腾一整个下午。我个人现在固定下来的做法是Windows 上装到纯英文路径不勾全局 PATH老老实实用 Anaconda Prompt.condarc只留清华两三个源不贪多每个项目一个独立环境环境名和项目名对应代码跑通的第一时间就conda env export --no-builds environment.yml存一份。这几条坚持下来我几乎再没遇到过“环境莫名其妙坏了还找不到原因”的情况。最后分享一个小习惯新环境建好之后先跑一句python -c import sys; print(sys.executable)把解释器的绝对路径打印出来。这个路径就是判断“我在哪个环境里”的铁证比看提示符前缀还准。遇到任何 import 报错、包找不到的问题第一件事就是打印这个路径往往问题一看就明了了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。