前段时间回归到Win服后发现conda使用起来有种便秘的感觉,安装各种包时快时慢,最快也没过30K/s,还时常出现无法连接错误。印象中linux上倒是挺快的,那到底是什么原因导致安装缓慢到不能忍呢,毕竟网络还是那个网络。。。
一开始以为是网的问题,但使用aria2下载测试下载可满速(最高下载速度设置在3M/s),本地网络问题排除。那只能是conda源的问题了,折腾吧:
- 安装XX-Net,等待代理可用
- VScode中设置内建终端使用代理并重启应用
{
"terminal.integrated.shell.windows": "C:\Windows\System32\cmd.exe",
"terminal.integrated.env.windows": {
"HTTP_PROXY": "http://127.0.0.1:8087",
"HTTPS_PROXY": ""}
}
应用重启后首先在内建终端中输入set查看HTTP_PROXY是否设置成功,(开发者选项输入process.env查看的是当前工作环境中的变量,非终端环境变量,有区别),然后再尝试安装 conda install pkgs。实验发现conda安装内容时是从https://conda.anaconda.org下载数据,而xxnet提供的是http代理不能代理发往conda.anaconda.org的https请求(这点从xxnet日志中也得以应正),所以下载内容速度上并没有改观,还是会出现CondaHTTPError: HTTP None None for url <https://conda.anaconda.org 错误。那让https请求走http代理好了,设置HTTPS_PROXY同HTTP_PROXY,继续重启程序--安装,这次又报证书错误。。。。(一万只***走过)。
Google了下,发现原来conda的源服务器是可以修改的。conda当前的源设置在$HOME/.condarc中,可通过文本查看器查看或者使用命令>conda config --show-sources查看。conda源操作的基本命令如下:
conda config --show-sources #查看当前使用源
conda config --remove channels 源名称或链接 #删除指定源
conda config --add channels 源名称或链接 #添加指定源
既然直接访问不行,代理不行,那不用官方源总可以了吧(逼死强迫症)。清华开源软件镜像站维护着许多开源项目的镜像,例如Ubuntu、tensorflow以及以前提到的termux,不出意外该网站也维护着conda的项目资源,具体移步这里查看。应知乎网友建议我们需要为conda添加下面两个清华源分支:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
添加后的源类似于下图:
再来一次安装,速度终于上来了
高版本的conda中可以使用 conda init
来将conda运行环境注册到shell。
如果你发现进入shell后自动激活了 base
环境,嗯~这是高版本conda的默认操作,可以通过
conda config --set auto_activate_base false
关闭 base
环境的默认激活。
以上conda配置为用户级别操作,配置信息将写入~/.condarc
文件。如果要进行系统级别配置,记得在配置的时候添加--system
参数,即conda config --system ...
, 这将在conda的root目录(通常在base
环境下运行which conda
可以查看conda的root目录位置)下创建CONDA_HOME/.condarc
文件。