4. .conda文件详解
conda 配置文件.condarc
是一个可选的运行时配置文件,允许用户配置 conda 的各个方面,例如在哪些channel中搜索包、代理设置和环境目录。本文仅讨论和channel相关的部分。
4.1 channels
channels下面配置的就是可访问的chennel。
修改.condarc
文件的channels会覆盖 conda 搜索的默认值,导致 conda 仅按给定顺序搜索此处列出的频道。
频道有url和非url之分:
- url:自定义的搜索地址,如前面的
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- 非url: Anaconda.org 用户或组织名称,如conda-forge对应着
https://conda.anaconda.org
中的conda-forge。
如果.condarc
文件如下:
channels:
- conda-forge
- http://Code_LT
- defaults
则conda搜索pandas
包的时候就会按conda-forge->http://Code_LT->defaults
的顺序搜索。
4.2 channels分类
conda把channel分为两类
- 默认channel(default channels)
- 社区channel(community channels)
如果不修改.condarc
文件,conda会默认从这两类channel中搜索需要的包:
- 默认channel:对应
repo.anaconda.com
仓,硬编码写死了对应如下三个仓库(:
https://repo.anaconda.com/pkgs/main
https://repo.anaconda.com/pkgs/r
https://repo.anaconda.com/pkgs/msys2
- 社区channel:对应
conda.anaconda.org
仓,即https://conda.anaconda.org
4.3 channels镜像修改
.condarc
文件除了把url硬编码进chennels下面,还可以把非url的Anaconda.org 用户或组织名称映射到指定的仓。
根据channels分类可知道,要修改的化就涉及默认channel和社区channel的修改。
利用
default_channels
修改默认channel
如前面讲的阿里镜像中的:
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
则把原有的defaults
对应的仓换成了上面的阿里仓。
利用
channel_alias
修改社区channel
所有社区频道都会被修改,这个用得比较少,如:
channel_alias: https://my-mirror.com
则配置conda-forge频道后,conda不会再去https://conda.anaconda.org
搜。
利用
custom_channels
修改指定社区channel
custom_channels:
conda-forge: https://Code_LT/conda-forge
这样写进.condarc文件中后,配置conda-forge就不会再去https://conda.anaconda.org
搜,而是到https://Code_LT/conda-forge
搜,其他社区频道不变。
这样,清华源和阿里源的配置就弄明白了。
4.4 为环境配置单独的.condarc文件
要为单个环境选择通道,请将.condarc 文件放入该环境的根目录中(或 使用conda config
时使用--env
选项)。
示例:如果您已在主目录中安装了带有 Python 3 的 Miniconda,并且环境名为“flowers”,则路径可能为:
~/miniconda3/envs/flowers/.condarc
5. 配置文件冲突解决
conda会在如下目录中搜索.condarc文件
if on_win:
SEARCH_PATH = (
"C:/ProgramData/conda/.condarc",
"C:/ProgramData/conda/condarc",
"C:/ProgramData/conda/condarc.d",
)
else:
SEARCH_PATH = (
"/etc/conda/.condarc",
"/etc/conda/condarc",
"/etc/conda/condarc.d/",
"/var/lib/conda/.condarc",
"/var/lib/conda/condarc",
"/var/lib/conda/condarc.d/",
)
SEARCH_PATH += (
"$CONDA\_ROOT/.condarc",
"$CONDA\_ROOT/condarc",
"$CONDA\_ROOT/condarc.d/",
"$XDG\_CONFIG\_HOME/conda/.condarc",
"$XDG\_CONFIG\_HOME/conda/condarc",
"$XDG\_CONFIG\_HOME/conda/condarc.d/",
"~/.config/conda/.condarc",
"~/.config/conda/condarc",
"~/.config/conda/condarc.d/",
"~/.conda/.condarc",
"~/.conda/condarc",
"~/.conda/condarc.d/",
"~/.condarc",
"$CONDA\_PREFIX/.condarc",
"$CONDA\_PREFIX/condarc",
"$CONDA\_PREFIX/condarc.d/",
"$CONDARC",
)
多个文件之间可能会发生冲突,按照如下原则解决冲突(具体不展开了,可自行查看官网资料):
- Lists - merge
- Dictionaries - merge
- Primitive - clobber
冲突解决的优先级:
6. conda常用命令
# 获取版本号
conda -V
# 获取帮助
conda -h
# 环境管理命令帮助
conda env -h
# 列举所有环境
conda info --env
conda env list
# Python创建虚拟环境
conda create -n your_env_name python=x.x
# 复制某个环境
conda create --name new_env_name --clone old_env_name
# 彻底删除旧环境,则可以实现重命名环境
conda remove --name old_env_name --all # 注意:必须在base环境下进行以上操作,否则会出现各种莫名的问题。
# 激活或者切换虚拟环境
Windows: activate your_env_name
Linux: source activate your_env_nam
# 关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)
Windows: deactivate 或者 activate root 切回root环境
Linux:source deactivate
# 删除虚拟环境
conda remove -n your_env_name --all
# 删除环境钟的某个包
conda remove --name $your\_env\_name $package\_name
# 列举包
conda list
conda list -n your_env_name # 列举非当前活跃环境下的所有包
# 安装包
conda install [package]
conda install -n your_env_name [package] # 安装非当前活跃环境下的包
conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0 # 指定版本和channel
# 升级包
conda update [package]
conda update conda # 升级conda
# 查找包
conda search -h # 查看search使用帮助信息
conda search tensorflow # 查看指定包可安装版本信息命令
# 卸载包
conda uninstall [package] # 卸载xxx文件包
# 清理包
conda clean -p //删除没有用的包 # 这个命令会检查哪些包没有在包缓存中被硬依赖到其他地方,并删除它们
conda clean -t //删除tar包
conda clean -y --all //删除所有的安装包及cache
# 分享环境
activate target_env # 进入要分享的环境
conda env export > environment.yml # 当前工作目录下生成一个environment.yml
conda env create -f environment.yml # 拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令从该文件创建环境
7. conda install和pip install
先说结论:conda 中可以使用pip, 但conda 并不兼容pip, pip 安装的包越多, 越容易引发包版本依赖问题, 所以能用conda安装的包先用conda 安装, 不能的再到激活的虚拟环境里用pip安装.
conda install xxx
:这种方式安装的库都会放在anaconda安装的位置/pkgs
目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
pip install xxx
:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda安装的位置/envs/current_env/lib/python3.x/site-packages
文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages
文件夹中。
8. conda配置代理
.condarc文件中加入代理信息即可
channels:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/4bfc9cb07acf0d5b24f763175544e7eb.png)
![img](https://img-blog.csdnimg.cn/img_convert/d18baa95c76a845c7d2f40cd2f1378db.png)
![img](https://img-blog.csdnimg.cn/img_convert/d1e8433b5d6604a4584b599e424f284b.png)
![img](https://img-blog.csdnimg.cn/img_convert/d80492d11f816d824633a12a4685c65e.png)
![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**
vert/6c361282296f86381401c05e862fe4e9.png)
![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**
![](https://img-blog.csdnimg.cn/img_convert/47c9d7babbac4a3ba44f78caeedd656d.jpeg)