Anaconda常用的Python版本管理工具和Python包管理軟件,conda是Anaconda中的具體管理工具,下載地址為:
https://www.anaconda.com/distribution/
該軟件較大,下載時間較長。
由於Anaconda原始下載包的地址在國外並且網速不快,所以一般我們選擇切換為國內的鏡像源:
一般建議選擇中科大的鏡像,而不是選擇清華的,可能清華鏡像選擇的人過多也或許是它本就網速一般所以下載起來速度有可能比中科大的那個慢上幾倍。
==================================================================
鏡像源的安裝:
中科大鏡像源的添加:
參照網址:
https://blog.csdn.net/lijiecong/article/details/78339078
https://blog.csdn.net/qq_35608277/article/details/78714401
命令:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --set show_channel_urls yes
然后去 .condarc 刪除原有的清華鏡像。
vim ~/.condarc
將上圖第三行刪除保存即可。
雖然不建議用清華的鏡像源,但是還是給出它的添加方式,如下:
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 --set show_channel_urls yes
強烈不建議使用清華的鏡像源,真的是太慢了!!!
最后,如果只添加中科大的鏡像源, ~/.condarc 內容如下:
Conda 附加庫:
這里只給出 中科大 鏡像的安裝方法:
Conda Forge
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
msys2
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
bioconda
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
menpo
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
中科大鏡像的完整添加命令:
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/ conda config --set show_channel_urls yes
====================================================================
查看 aconda 版本:
conda --version #查看conda的版
更新 conda 中的各種包(Python庫)
conda upgrade --all
升級自身,即升級 conda, conda 是Anaconda 的管理工具
conda update conda
如何更新升級 軟件Anaconda ?
# If you want to update to a newer version of Anaconda, type:
#
# $ conda update --prefix /home/devil/anaconda3 anaconda
conda update --prefix ******** anaconda
其中, *********** 是軟件 Anaconda安裝的路徑, --prefix ******** 前綴指定軟件的安裝路徑。
或使用命令:
conda update anaconda
conda list
打印在當前環境下所安裝的包(Python 庫)
上面的命令可以發現,除了更新自身,即升級conda軟件( conda update conda ),查看自身版本( conda --version )以外,剩下的命令都是只對當前環境有效的,即(base)環境,也就是說 conda list 是打印出當前環境,即 base 環境下的已安裝包, ( conda upgrade --all ) 也是升級 (base) 環境下的各個包。
注:默認條件下默認的環境就是conda安裝后的默認自帶環境,即 (base) 環境。
=======================================================================
安裝新的環境:
Anaconda軟件默認的環境為 base , 如果我們需要不同版本的Python和軟件版本,那么我們需要安裝新的環境。
conda create -n py36 python=3.6 tqdm
創立新的環境,命名為py36, 為環境設定Python版本為Python3.6,並為環境安裝包 tqdm 。
激活環境:
# To activate this environment, use
#
# $ conda activate py36
conda activate py36
退出環境:
# To deactivate an active environment, use
#
# $ conda deactivate
conda deactivate
卸載環境中的安裝包:
conda remove -n py36 tqdm
卸載環境 py36 中的安裝包 tqdm 。
為環境安裝軟件包:
conda install -n py36 tqdm
為環境py36 安裝軟件包 tqdm 。
刪除環境中的所有軟件包:
( 等同於 刪除環境 )
conda remove -n py36 --all
刪除環境 py36 中的所有軟件包 。
需要注意的是,如果軟件中並沒有安裝任何第三方軟件包,那么該方法無法刪除環境。
如下所示:
這是創建的新環境 dev 並沒有含任何第三方軟件包。
發現此時使用 conda remove -n dev --all 方法無法刪除該環境,如下圖所示:
此時采用刪除環境命令:
conda env remove -n dev
conda env remove -n/--name *****環境名
刪除 名為dev的環境。
查看環境命令:
conda info --env
或
conda info -e
或
conda env list
如下圖:
重命名環境 或者 復制環境
conda create -n py36.bak --clone py36
創建一個新的環境 py36.bak 從原先的環境 py36 中復制來的。
conda 中沒有直接重命名環境的的命令, 我們可以復制(克隆)環境為一個新的名字,然后刪除掉原先的那個名字的環境。
========================================================================
分享環境
如果你用conda寫了一個程序或者部分代碼,現在需要其它人在另一個電腦上運行或接着開發,那么我們可以把自己的開發環境的配置保存到一個文件,然后在另一個電腦上使用conda直接根據該配置環境生成所需要的編程環境。
第一步: 進入到環境中
conda activate py35
第二步: 保存環境的配置文件
conda env export > env_py35.yml
可以看到 保存的環境配置文件, env_py35.yml 中的具體內容:
第三步: 在新的電腦中按照環境配置文件生成新的環境
conda env create -f env_py35.yml
conda env create -f ********* 按照環境配置文件生成新的環境。
********** 指的是環境配置文件
可以發現在新的電腦總我們根據保存的環境配置文件生成了新的環境。
==========================================================================
查看環境中安裝的軟件包
conda list
conda list 是查看當前環境中的已安裝軟件包。
conda list -n base
查看 命名為 base 的環境中的已安裝軟件包。
需注意的是不同環境中安裝的軟件包是不同的。
================================================================
創建新環境時如果沒有指定Python版本,那么 Python版本為base環境中的Python版本。創建新環境時候如果既沒有指定Python版本也沒有指定第三方軟件庫,那么新環境將使用base環境中的Python版本和軟件庫,但是它的環境配置文件中配置為空。如下圖:
根據上圖可以發現,如果新創建環境時不指定Python版本和第三方軟件庫,那么將使用 base 環境中的Python版本,和base 環境中的第三方庫,而將新創建的環境配置文件輸出后發現是沒有任何配置的,由此可以發現為了不必要的后續開發過程中不斷的糾錯那么我們在穿件新環境時就應該避免不指定Python版本和第三方軟件庫的情況。
如果創建新環境時不指定Python版本,但是指定Python第三方軟件庫,那么新環境將按照base環境中的Python版本創建新的Python環境,並生成新的環境。
================================================================
查詢 軟件源中的 庫版本:
conda search tensorflow
查詢 指定版本:
conda search tensorflow==1.12
conda search tensorflow-gpu==1.12
查詢anaconda源中Python包,anaconda會返回供安裝的版本號以及安裝方法:
anaconda show anaconda/tensorflow-gpu
anaconda show anaconda/tensorflow
anaconda show anaconda/***********
********** 為Python包名。
===============================================================
使用conda 安裝tensorflow時需要注意:
- tensorflow 1.4及以下的不支持cuda9.0,且tensorflow1.0版本以上是不支持cuda8.0以下的。
- tensorflow-gpu1.5以后不支持使用CUDA8.0。cuda8.0對應的cuDNN必須是6.0版的。
也就是說如果你的 CUDA是8.0版本的,那么 cuDNN 就必須是6.0版本的,同時你如果安裝tensorflow的話最高版本可以安裝到 1.4 , 即tensorflow_1.4 。
但是 conda 可以自動安裝 對應的cuda和cuDNN 版本,如下:
注明: 本機物理安裝 cuda8.0和cuDNN6.0 。
如下圖:
可以發現,即使物理機上安裝cuda8.0和cudnn6.0無法安裝tensorflow-gpu=1.5, 但是conda自動安裝cuda9.0和cudnn7.3, 使其可以安裝上tensorflow-gpu=1.5, 十分神奇,從這可以發現conda是將cuda和cudnn也構建到了自己的軟件包中了。
當然,該方法雖然很好,但是它卻不能把顯卡驅動也打包到一起,因為顯卡驅動是和你電腦物理顯卡版本走的,也就是說你的顯卡是1050ti那么你裝的顯卡驅動最高可能也就支持cuda9.1和cudnn7.3.1 , 但是tensorflow-gpu=1.12(最新版本,conda提供的編譯好的包)卻要求cuda9.2和cudnn7.3.1,這個情況下你就怎么也不能搞定了,除非你自己編譯tensorflow-gpu=1.5(從源碼上編譯)或許可行,但是這里就不研究了。
如下:
發現最終問題出現在 顯卡驅動版本不夠, 而1050ti的顯卡驅動又不支持更高的cuda版本,所以使用conda提供的編譯好的tensorflow-gpu是搞不定了,或許從tensorflow-gpu源碼編譯可以搞定,這里就不研究了。