(5)aconda之.condarc文件配置

1. 详解.condarc文件

1.1 win环境下必须解锁.condarc权限

务必勾选anaconda3安装文件的整个 完全控制 和 修改 权限,要不然后面的修改起不到作用

1.2 文件.conda1.3rc位置

默认安装aconda软件所在位置,我的安装在D盘所以文件位置

1.3 文件配置内容

XML 复制代码
channels:
  - defaults
show_channel_urls: true
channel_alias: https://anaconda.mirrors.sjtug.sjtu.edu.cn/
default_channels:
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/free
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/mro
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/msys2
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/pro
  - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/r
custom_channels:
  conda-forge: https://anaconda.mirrors.sjtug.sjtu.edu.cn/conda-forge
  soumith: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/soumith
  bioconda: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/bioconda
  menpo: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/menpo
  viscid-hub: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/viscid-hub
  atztogo: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/atztogo
envs_dirs:
  - D:\Anaconda3\envs
pkgs_dirs:
  - D:\Anaconda3\pkgs
ssl_verify: false

1.3.1 channels:

channels: 指定了conda搜索包的默认通道列表。在这个配置中,只有一个默认的通道列表项defaults,但实际上通过default_channels和custom_channels进一步细化了。

有url和非url之分:

url:自定义的搜索地址,如前面的https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

非url: Anaconda.org 用户或组织名称,如conda-forge对应着https://conda.anaconda.org中的conda-forge

bash 复制代码
channels:
  - conda-forge
  - http://Code_LT
  - defaults

则conda搜索pandas包的时候就会按conda-forge->http://Code_LT->defaults的顺序搜索。

如果不修改.condarc文件,conda会默认从这两类channel中搜索需要的包:

默认channel:对应repo.anaconda.com仓,硬编码写死了对应如下三个仓库

bash 复制代码
https://repo.anaconda.com/pkgs/main
https://repo.anaconda.com/pkgs/r
https://repo.anaconda.com/pkgs/msys2

1.3.2 show_channel_urls

设置为true意味着conda在输出信息时会显示通道(即仓库)的URL。这有助于用户理解conda正在从哪里下载包。

1.3.3 default_channels

default_channels: 指定了conda的默认通道列表

1.3.4 Custom Channels

custom_channels: 用户可以根据需要添加自定义的通道。

1.3.5 清除索引缓存

使用下列命令清除索引缓存,并安装常用包测试一下。

bash 复制代码
conda clean -i
conda create -n myenv numpy

1.4 官方文档配置说明

1.4.1 anaconda安装包说明

  • Anaconda 在默认情况下会安装到 C:\ProgramData\Anaconda3
  • conda 环境和包会安装在 C:\Users\username\.conda\ 目录下
  • 在这两个目录下都有一个 pkgs 文件夹,但是它们存储的内容是不同的C:\ProgramData\Anaconda3\pkgs 存储的是 Anaconda 自身的安装包
  • C:\Users\username\.conda\pkgs 存储的是用户创建的 conda 环境以及在这些环境中安装的包
  • 如果你想要查看 Anaconda 自身的安装包,应该去 C:\ProgramData\Anaconda3\pkgs
  • 如果你想要查看用户创建的 conda 环境以及在这些环境中安装的包,应该去C:\Users\username\.conda\pkgs。
  • 当你使用 conda 命令来管理包和环境时,默认情况下会使用 C:\Users\username\.conda\pkgs 目录下的包来安装依赖项。

官网说明

Environments --- conda 25.5.2.dev43 documentationhttps://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html#conda-directory-structure

1.4.2 目录结构

Environments --- conda 25.5.2.dev43 documentationhttps://docs.conda.io/projects/conda/en/latest/user-guide/concepts/environments.html#conda-directory-structure

1.4.3 官方解释.condarc文件

Using the .condarc conda configuration file --- conda 25.5.2.dev43 documentationhttps://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html#id2

1.4.4 官方channel配置说明

Mirroring channels --- conda 25.5.2.dev43 documentationhttps://docs.conda.io/projects/conda/en/latest/user-guide/configuration/mirroring.html#mirror-only-some-community-channels

2. 虚拟环境和包安装位置

2.1 conda包管理的3处目录

  • "anaconda安装的位置/pkgs "目录

conda install xxx:这种方式安装的库都会放在anaconda安装的位置/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。

该目录是用户指定update或install时由 Conda 下载并提取的包,都是解压后的包,可以在 conda 环境中通过link关联。

  • "anaconda安装的位置\envs\虚拟环境\Lib\site-packages "目录

则是启用虚拟环境后import时导入包的地方。它们来自 "anaconda安装的位置/pkgs"目录。

  • "anaconda安装的位置/Lib/site-packages "目录

是base环境的路径

2.2 配置虚拟环境和包路径

envs_dirs:

  • Anaconda安装根目录\envs

pkgs_dirs:

  • Anaconda安装根目录\envs
XML 复制代码
envs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\envs
pkgs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\pkgs

2.3 虚拟环境命令

2.3.1 创建与激活环境

bash 复制代码
# 创建名为 xxxxx 的隔离环境,指定 Python 3.10
conda create -n xxx python=3.10 -y

# 激活 / 退出
conda activate xxxx
conda deactivate

# 查看已存在的全部环境
conda env list


#克隆oldname环境为newname环境
conda create --name newname --clone oldname 





conda list         #查看已经安装的文件包
conda list  -n xxx       #指定查看xxx虚拟环境下安装的package
conda update xxx   #更新xxx文件包
conda uninstall xxx   #卸载xxx文件包

2.3.2 环境导出、备份、删除

bash 复制代码
# 仅导出"显式安装"的包(推荐,可读性高)
conda env export --from-history > env_min.yml

# 导出完整依赖树(含间接依赖)
conda env export > env_full.yml

# 删除不再需要的环境 加上-y 删除过程中不需要人工确认
conda remove -n xxxx --all -y

# 删除xxxx虚拟环境,删除过程中会要求人工确认
conda remove -n xxxx --all   

2.3.3 虚拟环境重命名

如果是当前激活状态的虚拟环境,需要退出当前激活环境

bash 复制代码
conda rename -n 旧环境名 -d 新环境名

2.3.4 克隆clone一个虚拟环境

bash 复制代码
conda create --name new_env --clone old_env

3. 镜像源配置

可以通过命令或者直接修改文件方式

3.1 通过命令配置和删除

  • 先查看当前conda配置
bash 复制代码
# 查看当前conda配置
conda config --show channels

命令行结果:

bash 复制代码
(base) C:\Users\yilvq>conda config --show channels
channels:
  - defaults
  • 增加channel镜像源------清华源

清华源anaconda路径:anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

参考以上官方文档即可

bash 复制代码
# 增加channel
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/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2

更多镜像源参考文章

镜像源镜像仓库-CSDN博客很多优秀的开源软件项目的安装包的托管平台(即软件源)都是在国外运营,在国内访问时网络质量和带宽不是很好。在"开源精神"的推动下,宣传自由软件的价值,提高自由软件社区文化氛围,国内很多企业和科研机构建立了免费开放的软件源镜像站,将国内的软件源同步到国内做镜像,以优化国内开发者更好的开源社区参与体验。https://blog.csdn.net/yilvqingtai/article/details/149025726删除某个指定镜像源

bash 复制代码
conda config --remove channels https://mirror.example.com

3.2 通过修改文件添加(推荐)

直接修改.condarc文件是最方便的。

bash 复制代码
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
ssl_verify: false
envs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\envs
pkgs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\pkgs

2025年7月1日 目测清华源失败,更新到了南科大

bash 复制代码
channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/main
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/free
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/r
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/pro
  - https://mirrors.sustech.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.sustech.edu.cn/anaconda/cloud
  msys2: https://mirrors.sustech.edu.cn/anaconda/cloud
  bioconda: https://mirrors.sustech.edu.cn/anaconda/cloud
  menpo: https://mirrors.sustech.edu.cn/anaconda/cloud
  pytorch: https://mirrors.sustech.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.sustech.edu.cn/anaconda/cloud
  nvidia: https://mirrors.sustech.edu.cn/anaconda-extra/cloud
ssl_verify: false
envs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\envs
pkgs_dirs:
  - D:\DevToolsSDKRepository\anaconda3\pkgs

3.3 配置镜像源访问出现如下错误

Solving environment: done

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/noarch/repodata.json\>

Elapsed: -

An HTTP error occurred when trying to retrieve this URL.

HTTP errors are often intermittent, and a simple retry will get you on your way.

SSLError(MaxRetryError('HTTPSConnectionPool(host=\'mirrors.tuna.tsinghua.edu.cn\', port=443): Max retries exceeded with url: /anaconda/cloud/conda-forge/noarch/repodata.json (Caused by SSLError(SSLError("bad handshake: Error([(\'SSL routines\', \'ssl3_get_server_certificate\', \'certificate verify failed\')])")))'))

在文件~/.condarc末尾添加一行ssl_verify: false

4. conda安装包位置

4.1 Conda 安装requirements.txt 文件

方法 1:直接使用 pip 在 Conda 环境中安装

conda创建虚拟环境的时候 ,如果指定了python版本,pip自动安装,如果没有安装可以通过 conda install pip 命令安装。

bash 复制代码
# 激活你的 Conda 环境。
conda activate your_env_name
# 使用 pip 安装 requirements.txt 里的所有依赖。
pip install -r requirements.txt

方法 2:在创建 Conda 环境时自动安装

你可以在 创建 Conda 环境 时,直接使用 --file 选项:

bash 复制代码
# 但 requirements.txt 是 pip 格式,所以如果里面包含 pip-only 包,Conda 可能无法正确解析。
conda create --name your_env_name --file requirements.txt

如果已经创建了虚拟环境,激活环境后,通过更新方式。更新依赖包

bash 复制代码
conda env update -f environment.yml --prune

方法 3:使用 condapip 分开安装

有些包 Conda 自带,可以用 conda 安装,而 pip 只能安装 Conda 没有的包:

bash 复制代码
conda create --name your_env_name python=3.8  # 创建环境
conda activate your_env_name
conda install --yes --file requirements.txt || pip install -r requirements.txt

这样 Conda 先安装能找到的包,再由 pip 处理剩下的包。

方法 4:确保 Conda 中的 pip 版本

有时 Conda 自带的 pip 版本过旧,建议更新:

bash 复制代码
conda install pip
pip install --upgrade pip
pip install -r requirements.txt

这样可以避免由于 pip 版本问题导致的安装失败。

方法 5:在 environment.yml 文件中引入 requirements.txt

如果你想用 conda env create 直接管理 pip 依赖,可以在 environment.yml 里这样写

bash 复制代码
name: my_env
dependencies:
  - python=3.8
  - pip
  - pip:
    - -r requirements.txt

然后执行:

bash 复制代码
conda env create -f environment.yml

4.2 conda install和pip install的区别

方面 conda install pip install
包来源 从 Anaconda 仓库(如 defaults 或 conda-forge)下载 从 PyPI(Python Package Index)下载
包类型 不仅包括 Python 包,还包括非 Python 的依赖项(如 C/C++ 库、系统工具) 只处理 Python 包,不能很好地解决 C/C++ 等非 Python 依赖
依赖管理 更加严谨,能自动处理复杂依赖、版本冲突更少 安装速度快但可能会引起依赖冲突
性能与稳定性 更适合数据科学、科学计算等需要依赖原生库的环境 更灵活,适合安装最新或冷门的 Python 库

👉 建议顺序:

优先使用 conda install 安装能找到的包,剩下找不到的再用 pip install。

4.3 conda install和pip install的存储位置的基本区别

4.3.1 安装位置受虚拟环境限制

无论你使用 conda install 还是 pip install只要你已经激活了某个 conda 虚拟环境,这些包都只会被安装到这个虚拟环境中,不会影响全局 Python 或其他 conda 环境。

可以验证当前环境:

bash 复制代码
conda info --envs

当前激活的环境前会有 *,比如:

4.3.2 差异

conda install pip install
安装机制不同 * 先将包下载到pkgs目录(作为缓存) * 然后在特定环境的site-packages中创建硬链接(hard link) * 保持中央化的包管理 * 直接安装到环境的site-packages目录 * 完全独立于conda的包管理系统 * 不会使用conda的pkgs缓存
安装包路径不同 # conda安装的numpy ~/anaconda3/envs/myenv/lib/python3.8/site-packages/numpy/ # 硬链接 ~/anaconda3/pkgs/numpy-1.21.2-py38hdbf815f_0/lib/python3.8/site-packages/numpy/ # 原始 # pip安装的requests ~/anaconda3/envs/myenv/lib/python3.8/site-packages/requests/ # 实际文件

这种差异带来的问题

  1. 依赖冲突:两个系统互相不知道对方安装了什么
  2. 卸载不彻底:用conda安装后用pip卸载可能残留文件
  3. 环境混乱:可能导致Python解释器加载错误的包版本

4.3.3 检查包安装来源

bash 复制代码
# 查看conda安装的包
conda list

# 查看pip安装的包
pip list

# 查看某个特定包的安装来源
conda list | grep numpy
pip show numpy

最佳实践建议

避免混合安装同一包:例如不要用conda安装numpy后又用pip安装不同版本

了解安装来源:在安装前先用conda search检查是否可用conda安装

统一卸载:如果用conda安装后用pip卸载,最好再用conda彻底清理

检查冲突:定期使用conda list和pip list比较已安装包

相关推荐
小赖同学啊27 分钟前
物联网数据安全区块链服务
开发语言·python·区块链
码荼1 小时前
学习开发之hashmap
java·python·学习·哈希算法·个人开发·小白学开发·不花钱不花时间crud
小陈phd2 小时前
李宏毅机器学习笔记——梯度下降法
人工智能·python·机器学习
kk爱闹2 小时前
【挑战14天学完python和pytorch】- day01
android·pytorch·python
Blossom.1182 小时前
机器学习在智能建筑中的应用:能源管理与环境优化
人工智能·python·深度学习·神经网络·机器学习·机器人·sklearn
亚力山大抵2 小时前
实验六-使用PyMySQL数据存储的Flask登录系统-实验七-集成Flask-SocketIO的实时通信系统
后端·python·flask
showyoui2 小时前
Python 闭包(Closure)实战总结
开发语言·python
amazinging3 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十一天
python·学习·appium
amazinging3 小时前
北京-4年功能测试2年空窗-报培训班学测开-第三十九天
python·学习·appium
m0_723140233 小时前
Python训练营-Day42
python