生信軟件管家——conda vs pip

pip vs conda:

安裝過python包的人自然兩種管理軟件都用過,

Pip install和Conda install在Python環境中用于安裝第三方庫和軟件包,但它們在多個方面存在顯著的區別

總的來說:
pip是包管理軟件,conda既是包管理軟件,又是環境管理軟件

管理環境用conda,安裝python相關包用pip,麻煩點再用conda(在裝python包上conda比pip少)

參考:
https://mp.weixin.qq.com/s/CsiVdclmAyugNdL9T60UzQ

https://mp.weixin.qq.com/s/SbRV5rRnHbB5aStYb0MZcg

01

寫在前面

大家拿到自己的服務器后可能需要安裝很多的軟件與包(生信分析為什么要使用服務器?),Linux中許多包的安裝依賴過多、安裝復雜。而conda作為一個能夠直接安裝超過90%軟件的"管家",能夠像Windows和手機中的應用商店那樣一鍵為你解決安裝軟件的煩惱。conda 是一個開源的軟件包管理和環境管理系統,用于簡化在不同平臺上安裝、運行和管理軟件包。該工具用于支持 Python 語言,但也能夠管理非 Python 的軟件。

以下是 Conda 的一些主要特點和功能:

  1. 跨平臺性: Conda 可以在 Windows、Linux 和 macOS 等多個操作系統上運行,支持跨平臺的軟件包管理。
  2. 軟件包管理: Conda 提供了一個強大的軟件包管理系統,可以輕松安裝、更新和刪除軟件包。這些軟件包可以包含 Python 庫、工具、依賴項等。
  3. 環境管理: Conda 允許用戶創建、導出、列出、刪除和更新虛擬環境,以便在不同項目中隔離和管理依賴項。
  4. 依賴項解決: Conda 能夠自動解決和管理軟件包之間的依賴關系,確保安裝的軟件包能夠正確地工作。
  5. 多版本支持: Conda 允許用戶同時安裝多個版本的軟件包,并在不同的環境中使用這些版本。
  6. 快速的安裝: Conda 使用二進制包進行安裝,因此安裝速度較快,無需重新編譯源代碼。
  7. 大型軟件倉庫: Anaconda 發布了一個龐大的軟件倉庫,包含了許多常用的科學計算、數據分析、機器學習等領域的軟件包。
  8. 易于使用: Conda 提供了簡單的命令行接口,使用戶可以輕松地執行軟件包和環境的管理操作。

02

安裝conda

1.下載 conda 的安裝腳本(這里使用清華大學的鏡像)

cd ~  # 推薦將 conda 安裝在家目錄下
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh

如果鏈接失效自行去官網下載安裝腳本即可

2.執行conda安裝腳本

bash Miniconda3-py39_4.10.3-Linux-x86_64.sh

3.閱讀并同意conda的相關協議,不停地回車然后輸入yes再回車就安裝成功了, 執行腳本后輸入的文字的順序可以參考這個

回車
q
yes
回車
yes

4.為了讓安裝立即生效,需要執行 .bashrc 腳本,這樣會立即進入到 conda 的 base 環境下

source ~/.bashrc

5.添加官方源和國內源,這幾乎是提速 conda 的唯一方式了

# 添加官方源
conda config --add channels r # R軟件包
conda config --add channels conda-forge # Conda社區維護的不在默認通道中的軟件
conda config --add channels bioconda # 生物信息學類工具# 添加國內源頭 (選其一添加即可)
# 添加中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加清華大學源(偶爾抽風,此時需要換其他國內源)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加阿里云源
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --set show_channel_urls yes

6.查看 conda 源是否配置成功,可以看出各 channel 的優先級(從上到下優先級依次增加)

conda config --get channels

安裝完成!


03

使用conda

(1)虛擬環境管理

conda env list (列出虛擬環境信息)

conda create -n (創建虛擬環境)

# 命令示例
conda create -n py38 -y
conda create -n py39 python=3.9 -y  # 官方推薦使用這種方式
conda create -n py39_2 -y && conda install -n py39_2 python=3.9 -y# 比較兩種創建方式有何不同,并無任何不同
diff miniconda3/envs/py39 miniconda3/envs/py39_2

可以看到,在創建環境時指定 python 版本,和創建完環境后安裝 python 的指定版本兩者導致的結果并無不同,那為什么官方推薦在創建環境時使用 python=3.9 的方式指定 python
版本呢?這是因為如果您要在該虛擬環境中使用 python,就應該在創建環境之初下載 python3.9 ,之后在這個虛擬環境中下載的其他包都會匹配 python3.9的依賴與約束。如果安裝了很多其他包之后再安裝 python3.9,處理環境依賴就會變得較為復雜,甚至導致一些不易察覺的 bug。

conda activate (進入虛擬環境)

# 命令示例
conda activate py39

conda deactivate (退出虛擬環境)

# 命令示例
conda deactivate

conda remove -n –all 刪除虛擬環境

# 命令示例
conda create -n test -y
conda env list# 刪除 test 虛擬環境
conda remove -n test --all
conda env list

導出虛擬環境

# 適用于在相同操作系統版本下 clone 虛擬環境
conda list --explicit > spec-list.txt# 適用于所有平臺之間 clone 虛擬環境,這里的平臺指的是操作系統,如win、centos、ubuntu
conda env export > environment.yml

根據導出的文件創建虛擬環境

# 代碼示例
# 根據導出包創建 env_name1 的虛擬環境
conda create -n env_name1 --file spec-list.txt
conda env create --file environment.yml

(2)channels管理

列出 conda 中配置的 channels,根據優先級從低到高的順序排列

conda config --get channels

添加 channels,添加國內的 channels 也就是我們常說的添加國內源選其一添加即可,添加太多反而會“打架”。

# 添加中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes# 添加清華大學源(偶爾抽風,此時需要更換為其他國內鏡像源,更換國內鏡像源的教程可以查看《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/cloud/
conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes# 添加阿里云源
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --set show_channel_urls yes# 添加北京外國語大學源
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/# 添加鏡像源后清除一下本地軟件搜索索引
conda clean -i

刪除 channels

方法 1 (通過命令刪除):

# 首先查看 channels
conda config --get channels# 刪除指定的 channels
conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --remove channels defaults
# 刪除配置的所有鏡像源conda config --remove-key channels

方法 2 (編輯 .condarc 文件刪除想要刪除 channels 對應的行)

vi ~/.condarc

安裝包時暫時添加 channels

使用 -c 指定的軟件源處于最高優先級,這可能導致一個問題,如果你已經配置好國內鏡像源,在下載對應源的軟件時可以不指定軟件源,它會自動從你配置好國內鏡像源中下載。

conda install -c bioconda presto
# 如果配置了國內鏡像源,就不用指定 channels 了,這樣會使用國內鏡像源下載,速度更快
conda install presto

換源:

上面幾個國內鏡像源沒有一個是絕對穩定的,都有可能抽風,連接不上,這時可以切換為其他國內鏡像源。下圖是中科大鏡像源不能訪問時的報錯,而且同一天阿里的鏡像源也抽風了……這時可以切換為其他國內鏡像源。

# 移除當前配置的所有鏡像源
conda config --remove-key channels
# 重新添加鏡像源,以北外的鏡像源為例
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes 
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/

(3)包管理

使用 conda 安裝包之前,需要用search命令搜索 conda 包,找到安裝對應包的命令后再進行安裝,如果不能在下面的鏈接中找到安裝方法,即表明該包不能通過 conda 安裝。例如我們搜一下python試試看,返回的就是python包的名稱、對應版本及channel。

此時我們就可以指定channel安裝指定版本的python

conda install -c conda-forge python==1.0.1

conda install (安裝包)


conda 同樣也支持安裝R包,例如大名鼎鼎的R包seurat:

conda install r-seurat

04

卸載conda

聚散終有時,如果你因為磁盤容量或者其它原因需要卸載conda,可以嘗試以下方式:

conda 的卸載很方便,因為 conda 的安裝并不會污染其他系統目錄,conda 幾乎將所有數據都保存在 miniconda3 目錄下

rm -rf .conda
rm -rf .condarc
rm -rf miniconda3

然后再刪除 ~/.bashrc 文件中的 conda 初始化添加的語句,也就是刪除圖示內容:

vim ~/.bashrc

Linux中的文本刪改可以參考:Linux| 25. 文件編輯器 vim

刪完之后執行一下 .bashrc 文件。

source ~/.bashrc

參考:
https://mp.weixin.qq.com/s?__biz=MzAwMzIzOTk5OQ==&mid=2247506208&idx=1&sn=24d27bc2ff8de340b1f542610b4dc09e&chksm=9b3ca070ac4b29664600d778b077a08bcbd843c29bae65a46261f115a37292aa773fc1513a5a&token=1701013467&lang=zh_CN#rd

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/66826.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66826.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66826.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電子電氣工程會議

征稿主題 集中但不限于“電子電氣與信息工程”等其他相關主題。 電子、電氣工程: 電路與電子學、智能芯片、半導體器件、數字信號處理、遙感,雷達和傳感、射頻技術、微電子技術與電子信息、電子工程中的計算智能、電力領域的數據科學技術、智能電力設…

OpenVela 架構剖析:從內核到應用

目錄 一、總體架構概述 二、 內核層 2.1. OpenVela架構的內核基礎 2.2. 內核層的主要職責 2.3. OpenVela對NuttX的擴展與優化 三、系統服務層 2.1. 進程管理 2.2. 內存管理 2.3. 文件系統 2.4. 網絡通信 四、框架層 4.1. 模塊化設計 4.2. API接口 4.3. 組件和服務…

ubuntu 布暑python項目

在Ubuntu上部署Python項目通常包括以下幾個步驟: 1 安裝必要的軟件: 確保系統已經安裝了Python、pip(Python包管理工具)以及virtualenv(可選,用于創建獨立的Python環境)。如果還沒有安裝&#…

RV1126畫面質量一:視頻基礎

在聊視頻畫面調節之前,先來認識一下視頻畫面的有一些基礎問題 如今我們所處的時代,是移動互聯網時代,也可以說是 視頻時代 。 從快播到抖音,從“ 三生三世 ” 到 “ 三十而已 ” ,我們的生活,被越來越多的 …

準備知識——波紋度和粗糙度區別與聯系

在開始齒輪齒面波紋度開始前,先來學習一下基本概念——波紋度和粗糙度,廢話不多說,直接開始: 什么是表面粗糙度? 表面粗糙度定義為實際表面相對于波谷的較短頻率。如果去觀察加工零件,會注意到它們的表面…

五、華為 RSTP

RSTP(Rapid Spanning Tree Protocol,快速生成樹協議)是 STP 的優化版本,能實現網絡拓撲的快速收斂。 一、RSTP 原理 快速收斂機制:RSTP 通過引入邊緣端口、P/A(Proposal/Agreement)機制等&…

寶塔Linux+docker部署nginx出現403 Forbidden

本文主要講述了寶塔docker部署nginx出現403 Forbidden的原因,以及成功部署前端的方法步驟。 目錄 1、問題描述2、問題檢測2.1 檢測監聽端口是否異常2.2 檢測Docker容器是否異常2.2.1 打開寶塔Linux的軟件商店,找到Docker管理器,查看前端容器是…

光交箱啞資源巡檢過程中都要檢查哪些設備,怎樣實現智能化管理

一、光交箱啞資源管理現狀 光交箱啞資源主要包括光纖、光纜、接頭盒、配線架等設備。這些設備在通信網絡中起著至關重要的作用,但由于缺乏智能化的監控和診斷能力,管理難度較大。 效率低下:人工巡檢的頻率和覆蓋范圍有限,資源清…

代碼隨想錄——串

文章目錄 反轉字符串反轉字符串Ⅱ路徑加密反轉字符串中的單詞動態口令字符串匹配重復的子字符串 反轉字符串 344. 反轉字符串 //前后對應交換 //0<->sSize-1 //1<->sSize-2 //... //i<->sSize-1-i,i0,1,...,(sSize-1)/2 void reverseString(char* s, int s…

在K8S中使用Values文件定制不同環境下的應用配置詳解

在Kubernetes&#xff08;簡稱K8s&#xff09;環境中&#xff0c;應用程序的配置管理是一項關鍵任務。為了確保應用程序在不同環境&#xff08;如開發、測試、預發布和生產&#xff09;中都能穩定運行&#xff0c;我們需要為每個環境定制相應的配置。Values文件是在使用Helm管理…

機器學習(5):支持向量機

1 介紹 支持向量機&#xff08;Support Vector Machine&#xff0c;簡稱 SVM&#xff09;是一種監督學習算法&#xff0c;主要用于分類和回歸問題。SVM 的核心思想是找到一個最優的超平面&#xff0c;將不同類別的數據分開。這個超平面不僅要能夠正確分類數據&#xff0c;還要使…

【前端知識】簡單易懂的vue前端頁面元素權限控制

文章目錄 設計思路代碼實現1. **權限數據管理**2. **權限判斷方法**3. **動態控制元素**4. **路由權限控制**5. **無權限頁面** 總結相關文獻 在前端實現基于 Vue 的權限控制&#xff0c;通常需要結合后端返回的用戶權限數據&#xff0c;動態控制頁面元素的顯示與隱藏、按鈕的可…

250123-java設計模式

設計模式是指經過大量實踐后經過總結和理論化后優選的代碼結構。 1.1 單態設計模式 一個類只能創建一個實例化對象。 1.2 模版設計模式 比如抽象類的應用。 1.3 代理設計模式 比如接口的應用。 1.4 共享設計模式 why&#xff1f;有效的減少垃圾空間的產生。 1.5 集成設…

C#性能優化技巧:利用Lazy<T>實現集合元素的延遲加載

一、C#中的Lazy C#中的Lazy<T>是一個泛型類&#xff0c;它實現了延遲加載&#xff08;Lazy Initialization&#xff09;的功能。延遲加載是指對象的創建被推遲&#xff0c;直到第一次被使用時才進行實例化。這對于大型或資源密集型對象的性能優化非常有用&#xff0c;因…

百度APP iOS端磁盤優化實踐(上)

01 概覽 在APP的開發中&#xff0c;磁盤管理已成為不可忽視的部分。隨著功能的復雜化和數據量的快速增長&#xff0c;如何高效管理磁盤空間直接關系到用戶體驗和APP性能。本文將結合磁盤管理的實踐經驗&#xff0c;詳細介紹iOS沙盒環境下的文件存儲規范&#xff0c;探討業務緩…

docker安裝elk6.7.1-搜集java日志

docker安裝elk6.7.1-搜集java日志 如果對運維課程感興趣&#xff0c;可以在b站上、A站或csdn上搜索我的賬號&#xff1a; 運維實戰課程&#xff0c;可以關注我&#xff0c;學習更多免費的運維實戰技術視頻 0.規劃 192.168.171.130 tomcat日志filebeat 192.168.171.131 …

SpringBoot的Swagger配置

一、Swagger配置 1.添加依賴 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.2</version> </dependency> 2.修改WebMvcConfig Slf4j Configurat…

linux+docker+nacos+mysql部署

一、下載 docker pull mysql:5.7 docker pull nacos/nacos-server:v2.2.2 docker images 二、mysql部署 1、創建目錄存儲數據信息 mkdir ~/mysql cd ~/mysql 2、運行 MySQL 容器 docker run -id \ -p 3306:3306 \ --name mysql \ -v $PWD/conf:/etc/mysql/conf.d \ -v $PWD/…

代碼隨想錄——二叉樹(一)

文章目錄 二叉樹遍歷先序遍歷中序遍歷后序遍歷層序遍歷層序遍歷Ⅱ二叉樹的右視圖二叉樹的層平均值N插樹的層序遍歷在每個樹行中找最大值填充每個節點的下一個右側節點指針填充每個節點的下一個右側節點指針 II 二叉樹遍歷 先序遍歷 二叉樹先序遍歷 遞歸形式 /*** Definitio…

詳細介紹:持續集成與持續部署(CI/CD)技術細節(關鍵實踐、CI/CD管道、優勢與挑戰)

目錄 前言1、 持續集成&#xff08;CI&#xff09;1.1、持續集成的關鍵實踐1.2、持續集成工具1.3、持續集成的優勢 2、持續部署與持續交付&#xff08;CD&#xff09;2.1、持續交付&#xff08;Continuous Delivery&#xff09;2.2、持續部署&#xff08;Continuous Deployment…