鏡像也有可能出問題
本文基于windows绑青,所有類似
<your_user_name>
的字段需要自行進(jìn)行替換。
在使用python和R時(shí)屋群,經(jīng)常需要安裝包闸婴,包的官方服務(wù)器在國外,我們一般選擇配置國內(nèi)鏡像來解決下載速度問題芍躏。
國內(nèi)鏡像最常用的是清華的tuna鏡像:
可以看出邪乍,清華鏡像提供了計(jì)算機(jī)領(lǐng)域的常用安裝包下載以及常用鏡像。
我的anaconda和R就使用了清華鏡像。
anaconda
修改或新建C:\Users\<your_user_name>\.condarc
內(nèi)容為:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
R
修改C:\Program Files\R\R-3.6.1\etc\Rprofile.site
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")
options(url.method='libcurl')
options(download.file.method = 'libcurl')
這里還修改了下載包的網(wǎng)絡(luò)協(xié)議庇楞,不然win上下載包可能出現(xiàn)問題榜配。
anaconda syncing
周五上午我用conda安裝包的時(shí)候,出現(xiàn)了如下錯(cuò)誤:
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): failed
后面還有很長吕晌,就不放了蛋褥,觀察一下具體error是OpenSSL.SSL.WantReadError
。conda之前一直都沒有問題睛驳,怎么突然出問題烙心,百度了這個(gè)錯(cuò)誤,網(wǎng)上居然也沒有特別相關(guān)的內(nèi)容柏靶,一臉懵逼弃理。之后我就隨緣式的打開了清華鏡像網(wǎng)站。
咦屎蜓,syncing
痘昌,這個(gè)就有點(diǎn)意思了,看來極有可能是因?yàn)檫@個(gè)鏡像目前正在同步炬转,所以不能使用辆苔。那么我就要考慮使用原始的國外鏡像。
臨時(shí)修改我的配置文件
default_channels:
- https://repo.continuum.io/pkgs/main
- https://repo.continuum.io/pkgs/free
- https://repo.continuum.io/pkgs/r
repo.continuum.io
是anaconda官方鏡像扼劈,修改之后再conda安裝就好了驻啤。
如果不想這么麻煩,而且知道包具體在哪個(gè)channel的話荐吵,可以使用
conda install <package_name> --channel https://repo.continuum.io/pkgs/main
不過如果conda在使用該指定channel找不到包的時(shí)候骑冗,會自動繼續(xù)查找default_channels里的channel,當(dāng)清華正在同步時(shí)先煎,依舊會出現(xiàn)error贼涩。
后來發(fā)現(xiàn)十幾分鐘后syncing
就結(jié)束了,之后的默認(rèn)安裝一切正常薯蝎,看來我不該起這么早工作遥倦。
CRAN syncing
今天上午,我又隨緣的打開了清華鏡像網(wǎng)站占锯,突然看到R的鏡像cran正在syncing
不如測試下R安裝會出現(xiàn)什么問題袒哥,沒想到居然成功了,然后再打開清華鏡像網(wǎng)站消略,發(fā)現(xiàn)同步已經(jīng)結(jié)束堡称,真的巧。
如果你沒這么巧又急著安裝包的話艺演,可以指定鏡像:
install.packages('<package_name',repos='https://cloud.r-project.org/')
r-project
是官方鏡像却紧,直接打開cloud.r-project.org
可以看到鏡像列表婿失,選擇一個(gè)國內(nèi)其他鏡像也可。R在安裝包時(shí)如果指定了鏡像啄寡,在該鏡像嘗試失敗時(shí)不會嘗試repos里的已存鏡像豪硅,和python有些不同。
感想
同步鏡像一般發(fā)生在凌晨挺物,結(jié)束在早上懒浮,如果你碰巧起了個(gè)大早又要安裝包,有可能遇到我這種問題识藤。希望我的推文能夠幫助到你砚著。