最近整理系统时将之前的Anaconda环境全部删除,在重新安装时由于网络连接问题导致很多包和环境无法顺利安装。便想着将所用包全部下载下来,然后通过本地安装,这样以后会方便很多,下面就是关于如何使用conda自定义通道。
conda本身提供了自定义通道的功能,可以使用web服务器或是本地 file:// 链接。
为了创建自定义通道,首先要在各平台子目录中构建所有安装包:
代码语言:javascript复制channel/
linux-64/
package-1.0-0.tar.bz2
osx-64/
package-1.0.0-0.tar.bz2
通常,各系统平台名为 win-64, win-32, linux-64,linux-32, 和 osx-64 。
其次,就是在各系统平台子目录下执行 conda index 命令,比如:
代码语言:javascript复制$ conda index channel/linux-64 channel/osx-64
注意:
conda index 命令是 conda build 包的一部分,因此,你可能需要先运行 conda install conda-build
执行 conda index 命令后会产生 repodata.json 文件,用于获取通道中包的元数据信息。当你向通道中新加包或是改变了通道中的安装包时,需要重新运行 conda index。
通道的链接(url) 可以不包括系统部分,因为conda会自动添加。比如,通道在 /opt/anaconda/channel ,那么通道 url 就是 file:///opt/anaconda/channel
注意:
通道链接中 file:/// 有三个 / 。前两个/ 就像是 http:// 中的两个 /,第三个 / 表示通道绝对路径的开始。
最后,编辑 .condarc 文件,添加本地自定义通道的路径信息。
当然,使用 conda install 命令也可以直接安装本地包,但是在构建虚拟环境时还是使用自定义通道更方便。
题外话:
如果使用anaconda默认通道安装包时,大多数情况下速度都会非常慢,建议大家使用清华大学的开源镜像站的链接进行下载,这样速度会快很多。
注意:
代码语言:javascript复制如果添加了清华大学的镜像站链接,在安装时就不需要指定通道了。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 设置安装软件包时显示包的通道链接信息
conda config --set show_channel_urls yes
尤其是清华大学同步了 conda-forge 的安装包到镜像站,相对于直接连接 conda-forge 的原通道,这样速度会快很多。
代码语言:javascript复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
但是要注意,在安装时就不要指定conda-forge了,否则还是使用官方通道。比如,安装 pynio和pyngl时:
代码语言:javascript复制# 使用官方通道
conda create --name pyn_test --channel conda-forge pynio pyngl
# 使用清华镜像通道
conda create --name pyn_test pynio pyngl
因为,使用 conda-forge 别名,就是指向官方通道链接。
对于在 Jupyter 中使用 R 的来说,清华大学同样提供了 r-essentials 的镜像安装包。添加以下通道即可:
代码语言:javascript复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
注意:
安装时同样不需要指定通道。