一、conda关系图

1.1 核心层级(安装器/发行版)
1.1.1 Anaconda Distribution(完整版)
安装包时默认指向收费的default_channels渠道源
定位:全家桶,预装了conda、Python及大量科学计算库(NumPy,SciPy,Pandas等)。
体积:大(约500MB+),适合新手开箱即用。
1.1.2 Miniconda(精简版)
Miniconda软件本身完全免费(BSD 3-Clause License 开源协议)
安装包时默认指向收费的default_channels渠道源
定位:最小化发行版,仅包含conda包管理器和基础Python。
特点:体积小(约50MB),灵活,需手动安装所需包。
1.1.3 Miniforge(社区精简版)
完全免费(MIT 许可证)
关键区别:默认源为conda-forge(无需手动换源)。
定位:社区维护的Miniconda变体,内置更快的mamba解析器。
1.14 收费
yaml
|工具 |个人/教育|企业(<200人)|企业(≥200人)|
|Anaconda |免费 |免费 |需付费 |
|Miniconda|免费 |风险 |高风险 |
|Miniforge|免费 |免费 |免费 |
1.2 软件仓库(Channel/源)
defaults(官方源)
维护方:Anaconda公司。
特点:稳定、保守、更新慢、包数量少。
conda-forge(社区源)
维护方:全球开源社区。
特点:包极多、更新极快、覆盖全平台(含ARM/M1),是目前主流选择。
1.3 选型建议(速查)
新手/不想折腾:选Anaconda。
追求轻量/自定义:选Miniconda(需手动切换conda-forge源)。
追求速度/最新包/ARM架构:直接选Miniforge(自带conda-forge+mamba,最优解)。
二、选型说明
Anaconda官方源(defaults)在公司/商业环境下,超过200人规模必须收费;conda-forge社区源完全免费商用。
2.1 官方源(defaults)收费规则(2026最新)
免费范围:个人非商业、200人以下小公司、学术/非盈利机构。
收费范围:
公司员工≥200人,任何商业用途(开发/测试/生产)使用defaults源,必须购买商业许可证。
镜像、分发、嵌入Anaconda产品给第三方,一律收费。
风险点:Miniconda/Anaconda默认走defaults,即使只用conda命令,也会触发授权。
2.2 conda-forge(社区源)
完全免费:开源社区维护,无任何商业限制,企业可放心使用。
优势:包更多、更新更快、支持ARM/M1,国内镜像稳定。
2.3 企业合规方案(推荐)
2.3.1.直接用Miniforge(最优):默认conda-forge+mamba,彻底避开defaults。
2.3.2.Miniconda改源:
powershell
conda config --remove-key channels
conda config --add channels conda-forge
conda config --set channel_priority strict
使用conda-forge渠道
conda create -n env_name -c conda-forge #创建新环境时指定conda-forge渠道
conda install -c conda-forge pkg_name #安装包时指定conda-forge渠道
-c参数:指定软件包来源渠道(channel)
2.3.3.禁用defaults:conda config --set default_channels []
一句话总结:公司超过200人,别碰defaults,直接用conda-forge最安全免费。
避开官方源(defaults),用社区源conda-forge完全免费
推荐安装Miniforge(默认conda-forge,无授权风险)
或Miniconda手动换源(彻底禁用defaults)
三、conda虚拟环境
3.1 conda虚拟环境
一个虚拟环境就是一个独立的目录(类似于一个房间),这个目录里包含了:
a、一个特定版本的Python解释器。比如老项目需要用Python 3.6、新项目想用Python 3.11
b、一套独立的第三方库(使用的工具,比如requests,numpy,django等),有自己的版本,比如旧版本仅支持python3.6,新版本支持仅支持3.11,它们的版本只在这个环境中有效,与其他环境隔绝。
虚拟环境就是给每个项目一个独立的空间,里面有自己的Python版本和自己专用的工具包,不会影响其他项目。不同的项目及相关依赖项可以在各自的"房间"里相安无事,互不冲突,便于管理和复现。
xml
全局环境(系统Python)=公共厨房
└──所有人共用,调料混乱,容易冲突
虚拟环境=每人一个独立小厨房
├──项目A的小厨房:Python 3.6 + Django 2.2
├──项目B的小厨房:Python 3.11 + Django 4.2
└──项目C的小厨房:Python 3.9 + Flask 2.0
3.2 环境创建
conda环境下不切换环境直接安装默认是安装到base基础环境(conda自身运行的环境)
python
conda create -n myproject python=3.10 #创建名为myproject的Python 3.10环境 python不写后缀默认安装最新python版本
查看环境列表
conda env list #显示所有已创建的虚拟环境,带 * 的为当前激活的环境。
查看当前环境的包
conda list #列出当前环境中已安装的所有第三方库及其版本。
conda activate 环境名 #激活指定环境
conda deactivate #退出当前环境
conda install 包名 #安装包 不切换环境直接安装默认是安装到base基础环境
conda remove -n 环境名 --all #删除环境
python -m venv my_project_env #运行venv模块(Python内置的虚拟环境工具)创建名为my_project_env的虚拟环境,不能选择python版本,只能用当前系统的Python版本,仅Python包(PyPI)
# 指定Python版本创建(如果有多个版本)
python3.11 -m venv my_project_env
# 创建时同时升级pip
python -m venv my_project_env --upgrade-deps
pip list #查看已安装的包
# 激活虚拟环境
my_project_env\Scripts\activate # Windows
source my_project_env/bin/activate # macOS/Linux
# 安装项目依赖(示例)
pip install requests pandas numpy
# 退出虚拟环境
deactivate
3.3 环境复用
将项目所依赖的所有包及其版本号记录在一个文件(如requirements.txt)里。当其他人要运行项目时,只需要创建一个新的虚拟环境,然后根据这个文件安装所有依赖,就能得到一个一模一样的开发环境。
流程:
xml
一、纯pip虚拟环境(venv/virtualenv)
# 1. 导出当前环境的依赖清单
pip freeze > requirements.txt
# 2. 拿到项目后,创建新环境并安装依赖
python -m venv myenv #创建虚拟环境
source myenv/bin/activate #Linux/Mac 执行shell脚本激活虚拟环境
myenv\Scripts\activate #Windows 运行批处理脚本激活虚拟环境
pip install -r requirements.txt #安装依赖
requirements.txt示例
Django==4.2.0
requests==2.31.0
numpy==1.24.3
pandas==2.0.1
二、 Conda环境中使用pip
# Conda环境中也可以用pip
conda activate myenv
# 安装包(部分包只能用pip)
pip install some-package
# 导出(仅含pip包,不含conda包!)
pip freeze > requirements.txt
三、Conda推荐的做法
# 导出完整的Conda环境
conda env export > environment.yml
# 或仅导出显式安装的包(排除依赖自动安装的包) (推荐)
conda env export --from-history > environment.yml
# 恢复环境
conda env create -f environment.yml
# 或更新现有环境
conda env update -f environment.yml --prune
优先用conda install安装包
必须用pip时(某些包conda没有),再用pip install
导出完整环境用conda env export,而非pip freeze
3.4 conda.bat 文件说明
conda.bat是Conda的启动脚本/入口程序
html
|属性 |说明 |
|**完整路径**|D:\software\anaconda\condabin\conda.bat |
|**文件类型**|Windows批处理脚本(.bat) |
|**本质** |Conda命令的**启动器/入口** |
核心功能:让系统认识conda命令
当你在任何目录输入 conda → 系统通过这个 .bat 找到 Conda 程序
|场景 |说明 |
|**PyCharm识别Conda**|告诉IDE:"Conda装在这里,用它" |
|**命令行激活 Conda** |双击运行可初始化Conda环境变量 |
|**多版本管理** |不同路径的Conda可共存,通过指定.bat切换|
对比:conda.exe vs conda.bat
|文件 |路径 |用途 |
|conda.exe |D:\software\anaconda\Scripts\conda.exe |直接执行Conda命令 |
|conda.bat |D:\software\anaconda\condabin\conda.bat|**初始化环境后**执行命令|
conda安装路径,看conda.exe
where conda # Windows
which conda # Linux/Mac
3.4.1 PyCharm 需要这个路径
PyCharm → 调用 conda.bat → 启动 Conda → 加载虚拟环境列表
PyCharm读取该路径,执行conda.bat(新版用conda.exe也可以)启动Conda,Conda返回所有可用环境(educate、learn、movie等),用户选择后,PyCharm用该环境运行项目
conda.bat是Conda的大门钥匙,PyCharm通过它找到并启动Conda,进而管理所有虚拟环境。
除了本地python和conda,pycharm还可以通过ssh及GPU环境使用python环境 !!!
四、使用方法
4.1 说明
镜像站提供了Anaconda仓库与第三方源(conda-forge、msys2、pytorch等,各镜像站镜像的第三方源并不相同,各系统都可以通过修改用户目录下的.condarc文件来使用镜像站。
不同系统下的.condarc目录如下:
yaml
Linux:${HOME}/.condarc
macOS:${HOME}/.condarc
Windows:C:\Users\<YourUserName>\.condarc
注:
Windows用户无法直接创建名为.condarc的文件,可先执行conda config --set show_channel_urls yes生成该文件之后再修改。
由于更新过快难以同步,TUNA等镜像站不同步pytorch-nightly,pytorch-nightly-cpu,ignite-nightly这三个包。
如果从某一镜像源切换到另一镜像源,请检查镜像源是否同步了所需要的repo,以及该repo是否支持您使用的平台(e.g. linux-64)。
为了保证以下配置在所有镜像站可用,配置中只加入了少量必须的第三方源,在下方的列表中自行寻找并添加其他第三方源。
yaml
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
envs_dirs:
- F:\.conda\envs
pkgs_dirs:
- F:\.conda\pkgs
1.配置镜像源(加速下载)
channels: 定义搜索包的频道,这里使用defaults(默认频道)
show_channel_urls:true:显示包的下载来源URL
default_channels:将默认频道指向 清华大学TUNA镜像站,替代官方源,加速国内下载
custom_channels:为conda-forge和pytorch两个常用第三方源配置清华镜像
2.修改缓存和环境的存储位置
envs_dirs:指定虚拟环境存放路径为 F:\.conda\envs(默认在C盘用户目录下)
pkgs_dirs:指定下载的包缓存路径为 F:\.conda\pkgs(默认也在C盘)
免费!!!
channels:
- conda-forge
show_channel_urls: true
channel_priority: strict #强制优先使用conda-forge,避免意外fallback到收费源
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
envs_dirs:
- F:\.conda\envs
pkgs_dirs:
- F:\.conda\pkgs
或者设置自动第三方源
conda config --set custom_channels.auto https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
conda config --set:设置Conda配置项
custom_channels.auto:为名为auto的第三方源设置镜像地址
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/ 清华镜像站的Anaconda Cloud镜像
使用下列命令清除索引缓存,并安装常用包测试一下。
yaml
conda clean -i
conda create -n myenv numpy
清除索引缓存
删除本地保存的频道索引数据(repodata.json等)
强制下次安装时重新从镜像源获取最新包列表
解决"换了配置但还走旧源"的问题
如果还看到defaults或pkgs/main
说明配置未生效,检查:
yaml
conda config --show channels
conda config --show-sources
查看是否修改成功