去年我在調研AIGC軟體的時候,遇到有一些專案需要用到conda安裝庫。不過用得比較少,而且用pip也完全可以勝任,我就沒有特意去學。不過這種事情吧……大劉說了,這玩意就像埋在後院裡的屍體,埋得再深也沒用,睡不好覺。早晚有一天你得把它挖出來,扔得遠遠的。
最近做的專案中,有一些環境就是Anaconda搭建的,由於系統的原因,我安裝virtualenvwrapper時候總是報錯。我也懶得一點點排查了,於是正好藉助這個機會學了一下conda。
簡單來說,conda就是一個python的包管理器,我需要用到的它的功能主要有兩方面,一方面是虛擬環境的管理,另一方面是第三方包的管理。conda主要有兩種,Anaconda和miniconda,功能差不多,只不過Anaconda內建裝好了很多第三方包,的確是比miniconda要用起來更方便一點。
但是,鑑於Anaconda所屬公司最近到處發律師函,我覺得還是慎用。如果沒有錢購買正版,就還是乖乖用miniconda吧。
miniconda在官方網站和清華的映象站都可以下載,為了下載速度快一些,我是在映象站下載的。
清華映象站的地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
![](https://img2024.cnblogs.com/blog/439064/202406/439064-20240608221115558-233843504.png)
注意要看好了具體版本哦!要關注python的版本(3.x,再細劃的小版本就不需要了),作業系統(Windows/MAC/Linux),還有具體的系統架構(x86_64(Intel或AMD)和aarch64(ARM))。
選擇好了需要的miniconda版本,下載下來其實是個.sh檔案。需要先給他執行許可權
chmod 755 Miniconda3-py311_24.4.0-0-Linux-aarch64.sh
(別原封不動地複製哈,看自己下載的檔名)
然後執行
./Miniconda3-py311_24.4.0-0-Linux-aarch64.sh
跳出一堆說明,一路空格到最後,yes同意。選擇目錄我這裡是預設的,可以自己設定。
等了一會兒安裝完成,但好像自動初始化沒成功,因為我這裡命令提示符前面直接就是名字,沒有括號,說明conda沒有初始化。這時候用conda相關命令是不成功的,都會提示command not found。但我發現安裝的最後有一句提示:
eval "$(/home/ubuntu/miniconda3/bin/conda shell.YOUR_SHELL_NAME hook)" # 注意這裡 YOUR_SHELL_NAME 應該替換為 bash ,可不是你的使用者名稱
執行完果然名字前面多了個(base)。再執行一下
conda init
做一下初始化就好啦。也可以用
conda env list
檢視一下當前已經安裝的虛擬環境:
![](https://img2024.cnblogs.com/blog/439064/202406/439064-20240608221602488-851316769.png)
跟virtualenvwrapper的workon命令類似。
接下來我們配配置一下conda源。這很好理解,類似於pip源,透過國內映象源下載安裝包速度能快一些。這裡使用的仍然是清華的源(pip我也愛用清華源,不過這只是使用習慣,用阿里之類的源也可以)。新增映象源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 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/r/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
這樣就把miniconda配置完成了,可以使用了。
其實miniconda的使用還是很直接明瞭的,會用virtualenv和pip的話conda也會很容易理解和上手。我就不詳細把每個conda命令列出來了,只列一些常用的吧:
虛擬環境相關 | |
檢視虛擬環境
|
conda env list |
建立虛擬環境 | conda create -n env python=3.11 |
複製虛擬環境 | conda create --name new_conda_name --clone old_conda_name |
刪除虛擬環境 | conda remove -n env --all |
進入虛擬環境 | conda activate env |
退出虛擬環境 | conda deactivate |
包管理相關 | |
檢視包列表 | conda list |
安裝包 | conda install package=1.11.1 |
包升級 | conda update package |
搜尋包
|
conda search package |
刪除包 | conda remove package |
*注:
(1)標紅色是需要替換成實際情況的部分。
(2)建立虛擬環境的時候可以指定python版本,這裡只需要指定到第一個點後的小版本,無需再小的版本,conda會在系統中搜尋目標版本中最高的版本。例如指定python=3.11而你的系統裡最高是3.11.5,那conda就會選擇這個python來建立環境了。
(話說,一般情況下是不是也不會同一個小版本下再區分安裝不同的更小的版本啊?除非是多人操作)
(3)在conda建立的虛擬環境中,同樣可以使用pip來安裝和刪除包。並且,如果你手頭只有一個requirements.txt來自動化安裝包的話,conda沒有響應的命令,只能 pip install -r requirements.txt。但還是推薦安裝包時優先使用conda install,沒有的話再pip install(這也是當初我一直迴避使用conda的原因之一,跟pip混合管理的時候很麻煩)。
好了,conda掌握這些基本就夠了。使用conda的目的就是讓python環境搭建起來更容易,它本身當然也是儘量簡明扼要才好,對吧!