ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

电脑里有个封闭的Anaconda,如何再装个独立的Miniconda并管理多个Python环境?方法如下

电脑里有个封闭的Anaconda,如何再装个独立的Miniconda并管理多个Python环境?方法如下

【前提】判断是否需要重新创建环境

新任务来了
│
▼
Q1: 任务指定了Python版本吗?当前环境版本是否匹配?
├─ 不匹配 → 🔴 创建新环境
└─ 匹配或未指定 → 继续
│
▼
Q2: 任务有提供 environment.yml 或 requirements.txt 吗?
├─ 有 → 🟡 建议创建新环境(直接复现,最省心)
└─ 没有 → 继续
│
▼
Q3: 在当前环境执行 conda install 新包 --dry-run,有冲突吗?
├─ 有冲突(提示降级/删除) → 🔴 创建新环境
└─ 无冲突 → 继续
│
▼
Q4: 这个环境是否还有其他重要任务在用?
├─ 是(共用环境) → 🟡 建议创建新环境(避免影响他人/其他任务)
└─ 否(独享) → 🟢 直接在当前环境装包

简单版判断(记这3条)

问自己是则创建新环境
新任务需要的Python版本和现在不一样吗?✅ 创建
新任务需要的某个包版本和现有包冲突吗?✅ 创建
我不确定会不会冲突,但想100%保险?✅ 创建

核心原则:

创建新环境的成本很低(几秒钟),但解决环境冲突的成本很高(几小时)。不确定时就新建一个。

解决方案:Miniconda + 独立Python环境管理

问题答案
电脑已有封闭Anaconda,能否再装一个独立的Python环境管理器?✅ 能,装Miniconda
不同任务需要不同Python版本/包,会冲突吗?❌ 不会,用conda环境隔离
一个Miniconda能管多少个环境?任意多个,互不干扰

【一】安装Miniconda(关键步骤)

### 下载
- 官网:https://docs.conda.io/en/latest/miniconda.html
- 选择:Windows 64-bit(根据你的系统)

- 当你前往Miniconda官网下载时,不用在众多版本中感到困惑。因为Miniconda 的“base”环境是什么 Python 版本一点也不重要。Miniconda 的功能就是创建和管理独立的虚拟环境。执行具体任务时,你可以随时用一行命令,创建一个全新的、指定了任意 Python 版本的、完全独立的环境。

### 安装时的选项(非常重要!)

  • 安装到新目录(不要和现有 Anaconda3 混在一起)

    • Windows:C:\Users\你的用户名\miniconda3

    • Mac/Linux:~/miniconda3

  • 取消勾选"Add Miniconda3 to my PATH environment variable"(避免干扰原平台)

选项选择原因
Create shortcuts✅ 勾选创建开始菜单快捷方式
Add to PATH❌不勾选避免与原有Anaconda冲突
Register as default Python❌不勾选避免干扰其他程序
Clear package cache✅ 勾选释放磁盘空间

### 安装后验证

# 打开 Miniconda Prompt(开始菜单) conda --version # 应显示版本号 conda env list # 应看到 base 环境路径

### 首次使用:同意服务条款(必须做,仅一次)

conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2

注意:出现的蓝色超链接不需要点击,直接按回车执行即可。

---

### 与原封闭平台的关系

你的电脑
├── 原有封闭平台 (Anaconda3)
│ └── 路径: C:\ProgramData\Anaconda3
│ └── 用途: 只能运行那个特定的分析软件
│ └── 不要动它!
│
└── 新安装的 Miniconda (你控制的)
└── 路径: C:\Users\你的用户名\miniconda3
└── 用途: 你所有的其他数据分析任务
└── 完全独立,互不影响

关键:两个系统物理隔离,永远不会互相干扰。

【二】为新任务创建和管理环境

第1步:打开 Miniconda Prompt

开始菜单 → Miniconda3 →Miniconda Prompt

第2步:创建环境

conda create -n py311_analysis python=3.11 -y
conda create -n base_env python=3.11 -y ↑ ↑ ↑ └── -y = 自动确认(不用手动输y) │ │ └──下载并安装Python 3.11 │ └── base_env = 自定义环境名(推荐:“py版本_用途”,如“py311_analysis”) └── -n = name(我要指定环境名字了)

第3步:新环境位置

C:\Users\gongx\miniconda3\
├── envs/ ← 所有环境都在这里
│ ├── py311_analysis/ ← 你创建的环境(你的命名)
│ │ ├── python.exe ← 该环境的Python
│ │ └── Lib/site-packages/ ← 该环境的包
│ └── ...
├── python.exe ← base环境的Python(不建议用)
└── ...
第4步:激活环境

conda activate py311_analysis

注意命令行提示符从(base)变成(py311_analysis)

第5步:安装包(这一步现在不是必须,可以需要时再安装)

conda install pandas -y # 装单个包,如pandas
conda install pandas numpy matplotlib jupyter -y # 装多个包

需要某种包时,如何确定该采取何种安装方式(conda vs pip):

情况用什么(在Miniconda Prompt中)
主流数据科学包(numpy, pandas, pytorch)conda install XX
conda里找不到的包pip install XX
需要最新版本pip install XX
不确定先conda search 包名,找不到再用pip

注意:每次安装包前,须先激活对应环境

第6步:验证环境

python --version conda list

熟悉后:可一次性运行完整命令(含创建新环境、安装所需Python、安装所需包)

conda create -n py311_analysis python=3.11 pandas matplotlib jupyter -y

【三】执行特定任务时,在PyCharm中配置环境

步骤:安装PyCharm →打开→选择conda环境→运行代码

版本:

版本特点适用场景
Community(社区版)免费、开源纯 Python 开发完全够用
Professional(专业版)30天免费试用,之后需付费需要 Web 开发、数据库工具、远程开发等高级功能

注意:安装PyCharm 时,不要让 PyCharm 污染系统 PATH。

选项建议原因
将 launchers 目录添加到 PATH❌不勾选保持 PATH 干净,与之前的策略一致
.py关联✅ 可以勾选方便双击打开 Python 文件
64 位启动器✅ 可以勾选在桌面创建快捷方式

【四】删除不再需要的conda 环境

第一步:确保要删除的环境当前没有激活

在 Miniconda Prompt 中,先确认一下命令行提示符前面的括号里是不是你要删的那个名字。

  • 如果是:先退出它,回到base环境。

  • conda deactivate

    退出后,提示符会变回(base)。

  • 如果不是:可以直接进行下一步。

第二步:执行删除命令

conda remove -n 要删除的环境名 --all

第三步:确认删除

  • 输入命令并回车后,系统会显示一个将要删除的包列表,并询问Proceed ([y]/n)?

  • 输入y然后按回车,确认删除。

  • 删除后,确认那个环境名字已经消失(查看所有环境列表文件夹名称或使用代码)

    conda env list
    常见问题:这个操作会误删我的代码或数据文件吗?

    完全不会。conda remove命令只删除envs目录下那个环境文件夹里的内容(比如 Python 解释器、安装的包等)。你写在桌面或项目文件夹里的.py脚本、Excel 数据等,绝对安全,不会被触碰。

【总结】完整工作流(日常使用)

# 每天开始工作时,在“开始”栏打开 Miniconda Prompt conda activate py311_analysis # 激活你需要的环境 python your_script.py # 运行你需要的代码 # 需要新任务时,重新创建环境并激活 conda create -n 新环境 python=3.11 -y #创建新环境 conda activate 新环境 #激活所需环境 conda install 包名 -y #安装所需包 # 不确定环境是否正确时的验证流程 conda env list | findstr "*" # 1. 列出所有Conda环境,当前激活的环境将显示一个星号* python --version # 2. 确认Python版本正确 conda --version # 3. 确认conda正常

其他常用命令速查

操作命令(在Miniconda Prompt中)
退出环境conda deactivate
查看所有环境conda env list
查看当前环境包列表conda list
删除环境conda remove -n 环境名 --all

【其他问题】

Q:Anaconda、PyCharm、Python功能区分?

A:

  • Anaconda/Miniconda:负责帮你把 Python 环境搭好、需要的工具库装好。(推荐新手直接装这个)

  • PyCharm:负责给你提供一个好用的界面来写代码。

  • Python:你写的代码最终运行的核心。

Q:“conda 环境”和“Python环境”,哪种说法准确?--------Conda 环境√

说法含义准确性
Python 环境仅仅指 Python 解释器 + 它的包⚠️ 不够完整
Conda 环境Python 解释器 + 包 + Conda 本身的管理信息✅ 更准确

一个 Conda 环境里有什么:

一个 Conda 环境(如 py39_analysis)/
├── Python 解释器 (python.exe)
├── Python 标准库
├── 安装的包 (numpy, pandas, ...)
├── Conda 的元数据(记录装了哪些包、版本、依赖关系)
└── 可能还有:非 Python 的工具(如 curl, git 等)

关键点: Conda 环境不仅管理 Python,还可以管理任何软件包(包括 C 库、命令行工具)。

Q:什么时候需要退出当前环境?--------很少场景

场景是否需要退出原因
切换到另一个 Conda 环境❌ 不需要直接conda activate 新环境即可,会自动切换
关闭终端窗口❌ 不需要窗口关了,环境自然就退了
在这个环境的工作做完了❌ 不需要直接关终端或放着不管都没问题
要在系统自带的 Python 下运行某个命令✅ 需要例如系统 Python 有某个工具,Conda 环境里没有
要调试 Conda 环境本身的问题✅ 可能需要排除当前环境的干扰
写脚本时,脚本里需要切换环境✅ 需要脚本执行完要恢复原状

核心原则:只有在“明确不想用当前环境,且要用环境之外的东西”时才需要退出。

Q:什么是系统自带的 Python?

系统 Python:是指操作系统自带的、或者你手动安装到系统目录的那个 Python,它不属于任何 Conda 环境。

操作系统系统 Python 的位置说明
WindowsC:\Python3xx\或C:\Program Files\Python3xx\Windows 不自带 Python,是你自己安装的
macOS/usr/bin/python3macOS 10.15+ 系统自带 Python 3
Linux (Ubuntu/Debian)/usr/bin/python3系统自带 Python,很多系统工具依赖它

注意:严格来说 Windows 没有「系统 Python」,但大家习惯把「安装到系统目录、不在 Conda 里的那个 Python」也叫系统 Python。

你的电脑上的 Python们:

┌─────────────────────────────────────────────────────────┐
│ 系统 Python(/usr/bin/python3) │
│ ├── 操作系统自带或手动安装 │
│ ├── 很多系统工具依赖它(macOS/Linux) │
│ └── ❌ 不要在里面乱装包,可能会破坏系统 │
├─────────────────────────────────────────────────────────┤
│ Conda base 环境(~/miniconda3/bin/python) │
│ ├── Conda 安装时创建的默认环境 │
│ ├── 建议也不要在里面装太多包 │
│ └── ✅ 比系统 Python 安全,但最好还是创建子环境 │
├─────────────────────────────────────────────────────────┤
│ Conda 子环境(~/miniconda3/envs/py39_xxx/bin/python) │
│ ├── 你为具体任务创建的环境 │
│ ├── 可以随便装包、随便删 │
│ └── ✅✅ 日常分析都在这里做 │
└─────────────────────────────────────────────────────────┘

什么时候会用到系统 Python?

场景说明
系统工具依赖macOS 的某些脚本依赖/usr/bin/python3,动它可能导致系统出问题
全局命令行工具用pipx安装的工具(如black、ruff)会用到
调试 Conda 问题退出所有 Conda 环境,测试系统 Python 是否正常
写跨平台的安装脚本脚本可能需要检测系统原生 Python

重要警告:不要乱动系统 Python

# ❌ 千万不要这样做(macOS/Linux) sudo pip install xxx # 往系统 Python 里装包 # 可能导致的后果: # - 系统自带的某个工具(如 App Store)崩溃 # - 系统更新失败 # - 需要重装操作系统才能恢复

规则: 系统 Python 仅供操作系统使用,你的数据分析代码永远不要依赖它。

Q:如何区分当前用的是哪个 Python?

# 方法1:查看路径 where python # Windows which python # Mac/Linux # 方法2:查看是否为 Conda 环境 conda info | grep "active" # 如果有输出,说明在 Conda 环境里 # 方法3:查看 Python 路径 python -c "import sys; print(sys.executable)"

输出示例:

# 在 Conda 环境里 /Users/me/miniconda3/envs/py39_analysis/bin/python # 在系统 Python 里 /usr/bin/python3

Q:在激活指定conda环境的情况下,conda install和pip install两种安装包的方式是否有区别?

有。虽然两者在激活环境后都能正确安装到当前环境,但它们在包来源、依赖处理、兼容性方面有重要区别。

特性conda install(更全面)pip install(更新)
包来源Conda 官方仓库(defaults/conda-forge)PyPI(Python Package Index)
依赖检查检查所有依赖(包括非Python库)只检查Python包依赖
非Python库✅ 能处理(如C库、CUDA、OpenBLAS)❌ 无法处理(需编译或系统预装)
环境一致性强(conda管理所有包版本)弱(可能打破conda依赖树)

情况1:conda install 成功,pip install 可能失败

情况2:pip 有更新版本,conda 版本较旧

情况3:混合使用导致环境损坏

# 激活环境后,安装包时,混用conda 和 pip的风险 conda activate myenv conda install scipy=1.10 # conda安装scipy及其依赖 pip install numpy==1.26 # pip强制升级numpy # ⚠️ 危险!scipy可能不兼容numpy 1.26,但conda不知道pip的改动

最佳实践建议

✅优先使用conda(当包存在时)

✅conda没有的包再用pip

✅ 永远不要用 pip 升级 conda 已经安装的包

✅如必须在同一个环境中混用,最后用conda同步

# 混用时,最后用 conda 同步 conda install scipy=1.10 #conda会自动解决依赖关系,安装合适的NumPy版本(如1.24版本) pip install numpy==1.26 #pip直接覆盖了NumPy 1.24 → 1.26(SciPy 1.10与NumPy 1.26不兼容) conda install scipy=1.10 --force-reinstall #重新安装SciPy 1.10(conda降级NumPy到兼容版本)

❌避免:频繁混用且不检查

conda install package-a pip install package-b conda install package-c # 频繁混用且不检查,可能破坏pip装的包

Q:其他常见问题及解决方法

问题原因解决方法
conda命令找不到没用Miniconda Prompt用开始菜单的Miniconda Prompt
装完包还报ModuleNotFoundError包装到了错误的环境先conda activate 正确环境再装
PyCharm报错找不到包解释器选的是base环境切换到envs/环境名/python.exe
conda create失败提示TOS未同意服务条款执行conda tos accept命令

-----------------------------------补充1-------------------------------------------

Q:面临新任务,需要安装其他的封闭平台时,该怎么做?

沿用同样的「独立隔离」原则——为每个封闭平台创建独立的生态环境。

当新平台也自带 Python/Conda(最常见)时,

你的电脑
├── 原有封闭平台A (Anaconda3) —— 不动
├── 新封闭平台B (自带 Python 3.8) —— 不动
├── 新封闭平台C (自带 Miniconda) —— 不动
└── 你自己的 Miniconda —— 唯一用来写代码的环境

关键:安装新平台时,不要让它修改系统 PATH,不要让它成为默认 Python。

Q:如果需要在这个封闭平台里「写代码」怎么办?

方法1:在平台脚本中指定完整 Python 路径

# 在封闭平台的脚本编辑器里 import subprocess result = subprocess.run([ r"C:\Users\gongx\miniconda3\envs\py39_analysis\python.exe", "my_script.py"], capture_output=True)

多个封闭平台共存的目录结构示例

C:\
├── ProgramData\
│ ├── Anaconda3\ ← 原有封闭平台A
│ └── PlatformB\ ← 新封闭平台B
│
├── Users\gongx\
│ ├── miniconda3\ ← 你的独立 Miniconda
│ │ └── envs\
│ │ ├── py39_analysis\
│ │ ├── py310_ml\
│ │ └── platform_b_helper\ ← 为平台B写的辅助环境
│ │
│ └── platform_b_data\ ← 平台B的工作数据
│
└── Program Files\ ← 尽量不要把封闭平台装这里

安装新平台时,如果出现以下情况,要格外小心:

需警惕的信号风险应对
安装程序要求管理员权限可能修改系统级配置尽量拒绝,或装在用户目录
自动添加到 PATH可能覆盖你的 python 命令安装后手动检查 PATH
修改系统环境变量(如 PYTHONPATH)可能污染所有 Python 环境记下修改了什么,测试后考虑恢复
要求关闭杀毒软件可能安装系统钩子谨慎,确认来源可靠
安装旧版 VC++ 运行时可能影响其他软件通常没问题,但要注意

Q:万一新平台破坏了环境怎么办?

症状:

  • 你的conda activate突然不好使了

  • python命令调出了平台的 Python

急救步骤:

# 1. 查看当前 PATH echo %PATH% # Windows echo $PATH # Mac/Linux # 2. 手动重新初始化 Conda conda init --reverse # 先清除 conda init # 重新初始化 # 3. 或者直接用完整路径激活 C:\Users\gongx\miniconda3\Scripts\conda.exe activate py39_analysis

终极方案:

  • 完全卸载新平台

  • 重装 Miniconda(5分钟的事)

  • 从备份的environment.yml恢复所有环境【目前未尝试】

一套原则应对所有情况:

原则说明
物理隔离每个封闭平台装在不同目录
PATH 隔离不让任何平台自动添加到 PATH
环境隔离你的代码永远在你的 Conda 环境里跑
快捷方式隔离每个平台用各自的启动快捷方式
备份隔离每个平台的环境配置用conda env export备份

你的电脑只有一个「可信区域」——就是你自己的 Miniconda 和它管理的环境。所有封闭平台都是「访客」,给它们独立的房间,不让它们碰你的东西。

-----------------------------------补充2-------------------------------------------

Q:什么是系统 PATH?

PATH 是系统的 “命令搜索清单”,本质是一个环境变量,里面存着一堆文件夹路径。

当你在终端 / 命令行里敲一个命令(比如python、git、node、ping)时,当你输入python或conda时,系统会按 PATH 顺序找到第一个匹配的,而非满硬盘乱找。

举例,假设你的 PATH 里有这几个路径:

C:\Windows\system32 C:\Python311 C:\Program Files\Git\bin

你输入:

  • ping→ 去system32里找到 ping.exe
  • python→ 去Python311里找到 python.exe
  • git→ 去 Git 的 bin 里找到 git.exe

如果某个软件的目录不在 PATH 里,你就必须输入完整路径才能运行,很麻烦。

Q:什么情况需要查询系统 PATH?

遇到命令找不到、版本不对、刚装工具要验证、排查环境问题时,就需要查询系统 PATH。

Q:如何查询系统 PATH?

Windows 系统:在 cmd 或 PowerShell 中输入

# 查看当前命令提示符下的 PATH(包括系统 PATH + 用户 PATH + 当前会话临时添加的) echo %PATH%

macOS / Linux:

# 查看当前会话的 PATH echo $PATH # 分行显示(更易读) echo $PATH | tr ':' '\n'

利用AI辅助判断判断 PATH 里是否存在问题,是否需要清理。

Q:什么情况需要清理PATH?

1. 出现 “命令冲突 / 版本错乱” 时,比如:系统里装了多个 Python、Java、Node;输入 python 跑出来的不是你想要的版本;明明装了新版,系统却调用旧版。

原因:PATH 里旧路径排在前面,优先被找到。→ 需要清理多余、旧版本路径。

2.软件已经卸载,但 PATH 还留着路径:很多软件卸载不会自动删 PATH 记录,这些无效路径留在 PATH 里,会拖慢命令查找速度,可能导致奇怪报错→ 必须清理。

3.PATH 太长、重复路径太多:系统每次执行命令都要遍历一遍,效率低。→ 精简 PATH。

4.命令提示 “找不到” 但路径明显不对:比如你明明加了路径,却依然报错:路径拼写错误;多了空格、中文、特殊符号;路径格式错误(Windows/Linux 混用)→ 检查并清理错误路径。

5.安全风险(PATH 里有可疑 / 陌生路径):有些恶意软件、脚本会把自己的目录加到 PATH 最前面,劫持系统命令(如 ping、cmd、java 等)。如果你发现:有不认识的陌生路径;看起来像临时文件夹、用户目录的可疑项→ 立即清理。

6.切换开发环境、重置环境时:比如重装系统、重装开发环境;从 Python2 切到 Python3;统一团队开发环境。需要把旧的、混乱的 PATH 清空重建,避免干扰。→ 彻底清理 PATH。

7.脚本、自动化任务运行异常:有些脚本对 PATH 敏感,如多一个路径就调用错程序、路径顺序不对就失败。为了稳定运行,需要干净、最小化的 PATH。

一句话总结:只要出现命令冲突、版本错乱、软件已删但路径还在、PATH 混乱、安全可疑,就需要清理 PATH。

Q:Windows系统如何安全清理 PATH,而不会搞崩系统?

原则:只删你认识且确定不用的,不认识的一律不动。

一、只要是下面这些,一律保留,不要动:

C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
任何以 Windows、System32 开头的路径
上述这些不能删除,会搞崩系统,其他路径都可以放心删。

二、打开 PATH 编辑器(安全方式)

按 Win + Pause/Break 或 右键此电脑 → 属性,点 高级系统设置,点 环境变量,找到两个 PATH:用户变量 → PATH(只对你当前账号生效);系统变量 → Path(对整个电脑生效)

一般只需要清理 用户 PATH,更安全。安全清理步骤(不会出错):

1.先备份(强烈建议):点击 Path → 编辑,全选复制所有内容,粘贴到记事本保存。万一改错,直接粘贴回去即可恢复。

2.只删这几类路径(绝对安全):软件已经卸载、不存在的路径。重复的路径(一模一样的出现多次)。明显错误、乱码、中文乱码路径。旧版本开发工具(旧 Python、Java、Node、Git 等)

测试软件、临时工具的路径。你完全不认识、不知道干嘛的路径。

3.不要做的事:不要删系统路径(上面列的那几个)。不要把 Path 清空。不要加奇怪符号、空格、中文路径。不要把不明程序路径放到最前面。4.调整顺序(可选):想让某个版本优先,就把它往上移。例如想用新版 Python,就把它移到旧 Python 上面。

三、清理完,如何验证是否正常:打开 cmd 依次输入:

ping ipconfig notepad python git java

这些命令能正常运行,说明系统完全没问题。

【个人】删除系统 PATH 中的 Anaconda 条目不会影响封闭平台的使用

原理:当已经在 VS Code 中通过Python: Select Interpreter选中过一个环境后,VS Code 将记录该绝对路径,之后运行代码时,VS Code 直接调用这个完整路径 ,而不依赖系统 PATH去「找」python。即使 PATH 里没有它,照样能用。

操作对 VS Code 选择环境的影响
删除 PATH 中的C:\Users\gongx\anaconda3\Scripts❌ 无影响
删除 PATH 中的C:\Users\gongx\anaconda3\Library\bin❌ 无影响
删除 PATH 中的C:\Users\gongx\anaconda3❌ 无影响

唯一需要注意的情况:如果你重新打开 VS Code,并且之前选中的环境找不到了(例如整个 anaconda3 文件夹被移动或删除),VS Code 才会提示你重新选择。但你现在只是删除 PATH 条目,anaconda3 文件夹本身完好无损,所以 VS Code 仍然能找到它。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进