Conda|Python包和版本管理利器

2021-02-13 pythonic生物人

本文續上篇,介紹Anaconda的強力管家Conda:可靈活管理python的包package和環境environment

Conda簡介

多種程式語言的包package 和虛擬環境environment的管理;非常簡單的完成package的安裝、運行、更新、刪除、依賴問題;可操作repo.anaconda.com上7,500+ packages ;支持語言【本文只介紹對python操作】:Python、R、Ruby、Lua、Scala、Java、JavaScript、C / C ++、FORTRAN;支持作業系統:Windows, macOS和Linux。本文目錄

更多好文,歡迎關注:pythonic生物人

1、下載源channel詳解
國內部分好用conda下載源
 清華大學源
 中國科學技術大學源
 國內部分好用pip下載源
pip源使用
 配置conda下載源
 方法一
 方法二
查看已配置下載源
查看已配置下載源優先級
刪除下載源
 方法一
 方法二

2、conda系統相關命令
查詢某個conda命令幫助文檔【最有用命令】
查看conda系統版本等信息
查看conda所有配置信息
conda版本更新
Anaconda中所有包更新
conda更新python

3、包package管理
查看【當前環境】已安裝的所有包
查看【當前環境】已安裝【指定包】信息
查看【指定環境】已安裝的包信息
查看包可用版本
查看某個範圍內版本包
最新版包安裝
指定版本包安裝
指定list中版本包安裝
指定範圍內中版本包安裝
包安裝跳過【y/n】
包安裝到指定環境中
當前環境包更新
指定環境包更新
包卸載

4、環境environment管理
查看已經存在的環境
創建環境
環境激活
環境退出
環境克隆
環境刪除

5、Conda、pip及virtualenv三者比較 

1、下載源channel詳解

下載源,即您下載東西的網址;
由於Anaconda的伺服器在國外,默認源為Anaconda.org,國內下載相應資源緩慢,所以需要設置國內Anaconda鏡像源。

國內部分好用conda下載源

網址:https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

#清華大學源
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/cloud/conda-forge/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

網址:https://mirrors.ustc.edu.cn/

#中國科學技術大學源
https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/

國內部分好用pip下載源
#清華大學源
https://pypi.tuna.tsinghua.edu.cn/simple

#阿里巴巴源
https://pypi.doubanio.com/simple

#中國科學計數大學源
https://pypi.mirrors.ustc.edu.cn/simple/

#豆瓣源
https://pypi.doubanio.com/simple

pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple#使用清華源下載pandas包

配置conda下載源

以配置清華大學源為例。

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

conda config --set show_channel_urls yes的作用是顯示包的安裝來源,如下

linux下打開/home/xx/.condarc文件,添加下面內容保存即可

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
show_channel_urls: true

windows下默認無.condarc文件,需要 conda config --set show_channel_urls yes先生成,然後添加上面的內容。

查看已配置下載源
conda config --show channels

查看已配置下載源優先級
conda config --get channels

默認源優先級已降至最低,新加入的清華源優先級最高

刪除下載源

直接刪除.condarc文件

conda config --remove channels channels_Name

conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

2、conda系統相關命令查詢某個conda命令幫助文檔【最有用命令】
conda config -h

查看conda系統版本等信息
conda info

查看conda所有配置信息
conda config --show

以下列出部分

conda版本更新

將conda更新為最新版

conda update -n base conda

Anaconda中所有包更新
conda update anaconda

conda更新python

更新python到當前系列的最新版,當前為python2,則只能更新到python2中最高版本,而不能更新到python3。

conda update python 

3、包package管理查看【當前環境】已安裝的所有包
conda list

輸出四列,Name(包名稱)、Version(包版本號)、Build(包創建者)、Channel(包下載來源)。

查看【當前環境】已安裝【指定包】信息

conda list PACKAGE_NAME

查看【指定環境】已安裝的包信息

conda list -n ENV_NAME

conda list -n python2.7#查看環境python2.7下安裝的所有包

查看包可用版本

conda search PACKAGE_NAME

conda search pandas#以pandas為例

查看某個範圍內版本包

conda search "PKGNAME [version='>=1.0.0,<1.1']"

conda search "pandas [version='>=1.0.0,<1.1']"#搜索版本處於1.0.0及1.1之間的pandas

最新版包安裝

conda install PACKAGE_NAME默認安裝在當前激活的環境,安裝最新版

conda install pandas#默認安裝最新版本

指定版本包安裝

conda install PACKAGE_NAME=VETSION_CODE

conda install pandas=1.1.1#安裝1.1.1版的pandas

指定list中版本包安裝

conda install "PACKAGE_NAME[version='1.0.4 |1.1.1']"

conda install "pandas[version='1.0.4 |1.1.1']"#安裝pandas 1.0.4版或者1.1.1版

指定範圍內中版本包安裝

conda install "PACKAGE_NAME>1.0.4,<1.1.1"

conda install "pandas>1.0.4,<1.1.1"#安裝版本處於1.0.4到1.1.1之間的pandas

包安裝跳過【y/n】

conda config --set always_yes yes
默認情況下為conda config --set always_yes false,也就是安裝過程中會請求是否繼續安裝,設置為yes則不再彈出請求。包安裝到指定環境中

conda install -n ENV_NAME PACKAGE_NAME

可以這樣做,但是完全沒必要,建議先激活需要安裝的環境,然後再安裝

conda install -n python2.7 pandas#將pandas安裝在環境python2.7中

當前環境包更新

conda update PACKAGE_NAME

conda update pandas

指定環境包更新

conda update -n ENV_NAME PACKAGE_NAME

包卸載

conda remove/uninstall PACKAGE_NAMEremove和uninstall都可以

conda remove pandas

4、環境environment管理查看已經存在的環境

以下三種方法均可以。

conda info -e
conda info --envs
conda env list

創建環境

conda create --name ENVNAME python=3.6

conda create -y -n python2.7 python=2.7.7

-y#-y, --yes  Do not ask for confirmation.即安裝過程無需輸入y確認
-n  python2.7#設置環境名稱為python2.7
python=2.7.7#環境的版本為python=2.7.7,可通過conda search python檢索可安裝的版本號
出現以下表示已經創建成功。conda info -e 查看當前所有的conda創建環境

環境激活
conda activate python2.7

此時環境變為Python2.7

conda 4.6後的版本,激活environment使用 conda activate


conda 4.6前的版本,激活environment使用:
Windows: activate
Linux and macOS: source activate

環境退出
conda deactivate

回到了默認環境

環境克隆

將一個環境拷貝一份,二者配置一樣,但是可以獨立操作

conda create --clone python2.7 --name new_python2.7#將環境python2.7克隆一個new_python2.7

環境刪除
conda remove --name new_python2.7 --all#將環境new_python2.7刪除

5、Conda、pip及virtualenv三者比較virtualenv只能管理環境:https://www.liaoxuefeng.com/wiki/1016959663602400/1019273143120480Taskconda同時管理package和environmentpip管理packageVirtualenv管理environmentpackage安裝conda install $PACKAGE_NAMEpip install $PACKAGE_NAMEXpackage更新conda update --name $ENVIRONMENT_NAME $PACKAGE_NAMEpip install --upgrade $PACKAGE_NAMEXconda更新conda update condaLinux/macOS: pip install -U pip Win: python -m pip install -U pipXpackage卸載conda remove --name $ENVIRONMENT_NAME $PACKAGE_NAMEpip uninstall $PACKAGE_NAMEX創建新的environmentconda create --name $ENVIRONMENT_NAME pythonXcd $ENV_BASE_DIR; virtualenv $ENVIRONMENT_NAME激活environmentconda activate $ENVIRONMENT_NAME*Xsource $ENV_BASE_DIR/$ENVIRONMENT_NAME/bin/activate退出environmentconda deactivateXdeactivate搜索可用packagesconda search $SEARCH_TERMpip search $SEARCH_TERMX從指定源下載packageconda install --channel $URL $PACKAGE_NAMEpip install --index-url $URL $PACKAGE_NAMEX查看已安裝 packagesconda list --name $ENVIRONMENT_NAMEpip listX創建項目需求文件conda list --exportpip freezeX列出所有environmentsconda info --envsXInstall virtualenv wrapper, then lsvirtualenvconda和pip相互安裝conda install pippip install condaX安裝指定版本Pythonconda install python=x.xXXPython升級conda update python*XX

參考資料

https://github.com/conda/condahttps://conda.io/projects/conda/en/latest/index.html#

本文結束,下一篇介紹Python非常nice 的IDE Jupyter notebook
更好體驗,歡迎關注:pythonic生物人

相關焦點

  • 使用conda管理python包
    作為一款管理python安裝包的包管理器,其功能要比python自帶的pip強大不少。安裝好anaconda時會默認安裝conda,以及一些python安裝包。然後可以根據個人需要,使用conda安裝其餘的第三方包,conda會自動解決包之間的依賴關係。在安裝第三方包時,由於網絡連接原因,連接默認源的速度會很慢,有時會出現連接中斷,甚至無法連接的情況。
  • Python第三方庫管理Pip和Conda
    ,例如有時候需要tensorflow 1版本,有的時候希望用最新的2.3版本,這樣導致了運行環境的管理複雜度,對於第三方庫管理推薦通過Anaconda來解決這個痛點,通過不同的env解決環境配置問題。3.4.x中的最新版本)conda create --name python34 python=3.4# 安裝好後,使用activate激活某個環境activate python34 # for Windowssource activate python34 # for Linux & Mac# 激活後,會發現terminal輸入的地方多了python34的字樣,實際上,此時系統做的事情就是把默認
  • 使用conda管理你的Python環境
    最近在學習Python,經常會使用到conda命令,conda是Python包及其依賴項和環境的管理工具。因此整理了一些常用的conda命令,以供大家和自己學習使用。例如:需要查看conda install 幫助conda install --help3、升級版本conda update -n base conda #update最新版本的conda
  • 使用conda建立及管理python虛擬環境
    使用conda建立及管理python虛擬環境平時我們在使用python進行各種不同的開發時,最常遇到的問題是我們需要選擇不同的python版本,以及各種各樣的包(package)。我現在發現的問題就是,有很多不經常使用python的同學不知道怎麼管理自己的開發環境,不管怎麼樣的python項目,都使用pycharm默認的編譯環境,在安裝一些某些項目需要的包(package),經常會導致各種各樣的報錯。其實這些問題都很容易解決。我們安裝一個python的包(package)管理工具Anaconda即可。
  • conda:基於python的軟體管理系統
    如何在一臺伺服器上同時安裝不同版本的python,不同版本的package, 而且不互相干擾,是一個令人頭痛的問題。為了解決這個問題,首先是virtualenv這個包的發明,實現了python環境的隔離,接下來就是conda的出現,conda不僅僅解決了python的環境隔離問題,還進一步擴展,支持任意軟體的隔離。
  • 用 Conda 來管理 Python 虛擬環境
    使用Python虛擬環境的好處在於,一方面它能為項目的運行提供完整的環境支持,比如Python版本,第三方模塊等,另一方面它能為項目的運行指定所需的環境,避免了Python不同版本和不同第三方模塊之間的幹擾。Python的虛擬環境管理有多種實現方式,比如Conda和Python自帶的管理工具virtualenv。本文將會介紹如何使用Conda來管理Python虛擬環境。
  • 玩轉Conda,看這⼀篇就夠了
    Conda 主要是為 Python 程序創建的,適⽤於 Linux,OS X 和Windows,也可以打包和分發其他軟體,如R和Scala。對於長期使用python的同學來說,⼀定遇到過不少頭疼的python環境配置問題。不同的項⽬可能⽤了不同的python版本,而且也用了不同版本的開源python包。
  • Python系列特別篇-Conda和JupyterLab
    獲取conda的最快方法是安裝Anaconda的迷你版本Miniconda,僅包含conda自身及其依賴項。如果你希望同時擁有超過7500個開源的軟體包,那麼請安裝Anaconda。官方建議安裝conda到本地用戶,而不是管理員。
  • 必備技能,conda創建python虛擬環境,完美管理項目
    >= 1.3 matplotlib pycocotools tqdm Pillow對於不同項目有不同的需求,如果在同一個環境下運行這些項目,很可能會出現某些包的版本衝突等問題。conda版本conda -V# 輸出 conda 4.7.12(2)conda一些常用的命令1)conda list 查看安裝了哪些包
  • conda:一個當下最流行的Python虛擬環境工具
    Conda常用命令在conda環境中,常用的命令格式為:conda [命令 [參數]] 包管理與python -m pip list類似,conda可以列出當前環境下的所有包:conda list版本與升級conda有一套特別的機制,用於管理和維護依賴庫之間的關係。
  • 只用來管理 Python 版本和虛擬環境,Miniconda 也是一個很好的選擇
    看起來很適合實驗室或是學校機房使用……對於常規的 Python 開發來說,Anaconda 太重了,而且主要面向科學計算領域,但是精簡版的 Miniconda 卻是一個很好的 Python 版本和虛擬環境管理工具。更重要的是 Miniconda 兼容三個主流作業系統,而且不同平臺使用同樣的命令和接口(Conda 4.6 以上)。
  • 你不得不懂的conda和pip --還在找conda與pip?三分鐘全掌握
    本機上運行的所有python程序依賴模塊統一安裝在一起,工程多了,依賴模塊包多了,變成一個超大依賴倉庫,當某個工程需要移到其它機器上運行時,將整個超大依賴倉庫一起轉移?當我在開發不同工程時用到不同版本的python時,需要不同的python環境,修改系統變量切換python環境?這個時候是否發現python的世界要一團糟了,當然這些方法都不可取,這個時候我們的conda工具應運而生,專來拯救世界。
  • R studio/R 工具指南(十四:在Rstudio中使用python和conda)
    所以,你得有個python 環境。這裡我建議使用conda 進行管理,非常方便。而在R 中使用python,則需要安裝R 包reticulate。如果你還沒有創建conda 環境,可以參考下面的使用conda 條目。通過conda 分離不同python 或其他程序版本,可以防止因為軟體或包版本不同造成的汙染。1.
  • pip install 和conda install有什麼區別嗎?
    pip是用來安裝python包的,安裝的是python wheel或者原始碼的包。從源碼安裝的時候需要有編譯器的支持,pip也不會去支持python語言之外的依賴項。conda是用來安裝conda package,雖然大部分conda包是python的,但它支持了不少非python語言寫的依賴項,比如mkl cuda這種c c++寫的包。然後,conda安裝的都是編譯好的二進位包,不需要你自己編譯。所以,pip有時候系統環境沒有某個編譯器可能會失敗,conda不會。
  • 利用conda安裝包、卸載包、升級包、查看包信息等操作
    conda下載包是通過一些chanel來訪問下載的,原本內置的有一些chanel,另外一些包需要自己添加下載所需的chanel。
  • pip install 和conda install的區別,你想過嗎?
    pip是用來安裝python包的,安裝的是python wheel或者原始碼的包。從源碼安裝的時候需要有編譯器的支持,pip也不會去支持python語言之外的依賴項。conda是用來安裝conda package,雖然大部分conda包是python的,但它支持了不少非python語言寫的依賴項,比如mkl cuda這種c c++寫的包。然後,conda安裝的都是編譯好的二進位包,不需要你自己編譯。所以,pip有時候系統環境沒有某個編譯器可能會失敗,conda不會。
  • Conda入門教程
    不過,目前似乎只有python語言下用的多。官網地址:https://docs.conda.io/en/latest/Conda的安裝Conda的安裝可以通過Miniconda和Anaconda這兩個安裝程序實現。
  • Anaconda 解決python版本順滑切換
    平臺安裝第三方包經常失敗的場景得以解決2.提供環境管理的功能,功能類似 Virtualenv,解決了多版本Python並存、切換的問題常用命令1.更新所有包conda upgrade --all conda list4.查看conda當前package_name可用版本conda search package_name管理環境
  • python環境中的概念,conda中與環境相關指令操作
    python環境中的概念conda中與環境相關指令 操作
  • conda安裝包及設置鏡像源等命令
    #安裝包:conda install packagename#也可以安裝多個包:conda installl