首先感嘆,Firewall性能槓槓的!
再簡單談一談我對pip和conda這兩個指令(即兩個program,在系統的/bin directory中能找到對應的二進制可執行文件,且被添加在了系統的$PATH(路徑)中)的認識。
pip和conda這兩個指令是在系統中安裝python program(軟件和工具包等)的工具。
這兩個指令的執行,均是先從其對應的config文件中找到相應待安裝program所在repo(python的program(安裝文件等)可以理解爲都是掛在往上某個文件夾中,這個文件加可被稱爲repo,即repository)的url,然後由此url下載安裝文件,然後安裝。三部曲。
pip指令可安裝的程序都在Pypi(Python Package Index)這個大repo之中。pip每次要install東西時,就是來Pypi這個大”文件夾“中找到待安裝的東西。而conda install則是到anaconda自己維護的大repo中找尋。因此,有可能有些program conda安裝不了因爲不在anaconda的repo中,而可以用pip安裝(因爲Pypi的規模遠大於anaconda自己的repo)。
言歸正傳。
conda可用一條install指令一次性爲我們一併安裝PyTorch + torchvision + cuda,很良心。
不同的pytorch和cuda版本會對應不同的一行conda install指令,pytorch官網會給出不同pytorch和cuda搭配安裝的不同指令。具體指令可以在pytorch官網(https://pytorch.org/)找到:
我是在Ubuntu16.04系統服務器上,想安裝PyTorch1.1.0,無所謂Cuda和torchvision的版本。我從pytorch官網得到的安裝指令是:(可見,PyTorch1.1.0必須要cuda9)
conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
本以爲直接run就好了,這時我大firewall站了出來。果斷下載失敗:
難不難受!!!
好在解決方案比較直接,牆內大佬們的智慧是無窮的。
solution分兩步:
1. 給conda install指令添加下載地址的牆內鏡像源,每次conda install時不去牆外下載而是在牆內對應半官方url下載:
國內的pip和conda的repo的鏡像源(僅列出清華版,還有其他版本的鏡像源):
pip:https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
conda: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
具體實現方法是在conda install之前run如下指令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
2. 修改conda install那條指令,告訴conda不要去默認的牆外那個url去下載:
具體方法是將 conda install pytorch torchvision cudatoolkit=9.0 -c pytorch
尾部的-c pytorch這個option去掉,直接run:
conda install pytorch torchvision cudatoolkit=9.0
Viola!