別人寫的摘抄來:
Conda和pip通常被認(rèn)為幾乎完全相同暴浦。雖然這兩個(gè)工具的某些功能重疊螺捐,但它們?cè)O(shè)計(jì)用于不同的目的请梢。Pip是Python Packaging Authority推薦的用于從Python Package Index安裝包的工具苞尝。 Pip安裝打包為wheels或源代碼分發(fā)的Python軟件说铃。后者可能要求系統(tǒng)安裝兼容的編譯器和庫(kù)访惜。
Conda是跨平臺(tái)的包和環(huán)境管理器嘹履,可以安裝和管理來自Anaconda repository以Anaconda Cloud的conda包。 Conda包是二進(jìn)制文件债热,徐需要使用編譯器來安裝它們砾嫉。另外,conda包不僅限于Python軟件窒篱。它們還可能包含C或C ++庫(kù)焕刮,R包或任何其他軟件。
這是conda和pip之間的關(guān)鍵區(qū)別墙杯。 Pip安裝Python包配并,而conda安裝包可能包含用任何語(yǔ)言編寫的軟件的包。在使用pip之前高镐,必須通過系統(tǒng)包管理器或下載并運(yùn)行安裝程序來安裝Python解釋器溉旋。而Conda可以直接安裝Python包以及Python解釋器。
另一個(gè)區(qū)別是conda能夠創(chuàng)建可以包含不同版本的Python或其他軟件包的隔離環(huán)境嫉髓。在使用數(shù)據(jù)科學(xué)工具時(shí)观腊,這非常有用,因?yàn)椴煌墓ぞ呖赡馨瑳_突的要求算行,這些要求可能會(huì)阻止它們?nèi)堪惭b到單個(gè)環(huán)境中梧油。 Pip沒有內(nèi)置的環(huán)境支持,而是依賴于virtualenv或venv 等其他工具來創(chuàng)建隔離環(huán)境州邢。 pipenv儡陨,poetry和hatch wrap pip和virtualenv等工具提供了統(tǒng)一的方法來處理這些環(huán)境。
Pip和conda在如何實(shí)現(xiàn)環(huán)境中的依賴關(guān)系方面也有所不同量淌。安裝包時(shí)骗村,pip會(huì)在遞歸的串行循環(huán)中安裝依賴項(xiàng)。沒有努力確保同時(shí)滿足所有包的依賴性类少。如果較早安裝的軟件包與稍后安裝的軟件包具有不兼容的依賴性版本叙身,則可能導(dǎo)致破壞的環(huán)境。conda使用可確保滿足環(huán)境中安裝的所有包的所有要求硫狞。此檢查可能需要額外的時(shí)間信轿,但有助于防止創(chuàng)建破壞的環(huán)境,前期關(guān)于依賴關(guān)系包的元數(shù)據(jù)是正確的残吩。
考慮到conda和pip之間的相似性财忽,有些人試圖將這些工具結(jié)合起來創(chuàng)建數(shù)據(jù)科學(xué)環(huán)境也就不足為奇了。將pip與conda結(jié)合的主要原因是有些包只能通過pip安裝泣侮。 Anaconda創(chuàng)酷提供超過1,500個(gè)軟件包即彪,包括最流行的數(shù)據(jù)科學(xué),機(jī)器學(xué)習(xí)和AI框架。這些隶校,以及包括conda-forge和bioconda在內(nèi)的數(shù)據(jù)通過Anaconda云提供的數(shù)千個(gè)附加軟件包漏益,可以使用conda進(jìn)行安裝。盡管有大量的軟件包深胳,但與PyPI上提供的150,000多個(gè)軟件包相比绰疤,它仍然很小。有時(shí)候需要的包沒有conda包舞终,但在PyPI上有轻庆,可以用pip安裝。
作者:python測(cè)試開發(fā)_AI命理
鏈接:http://www.reibang.com/p/5601dab5c9e5
來源:簡(jiǎn)書
著作權(quán)歸作者所有敛劝。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)余爆,非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
用Conda安裝Snakemake:
step1:安裝Miniconda(Bash)
step2:建立工作目錄
$ mkdir snakemake-tutorial
$ cd snakemake-tutorial
$ wget https://github.com/snakemake/snakemake-tutorial-data/archive/v5.4.5.tar.gz
$ tar -xf v5.4.5.tar.gz --strip 1
step3:創(chuàng)建Conda環(huán)境
$ conda env create --name snakemake-tutorial --file environment.yaml
執(zhí)行代碼時(shí)報(bào)錯(cuò):
Conda數(shù)據(jù)源的問題夸盟,更改使用清華鏡像:
$ conda config --show? #查看
$ conda config? #創(chuàng)建 .condarc 文件蛾方,自動(dòng)存放于/home/username
記事本打開.condarc,手動(dòng)更改满俗,可參照https://mirror.tuna.tsinghua.edu.cn/help/anaconda/
注:根據(jù)Snakemake的environment.yaml文件转捕,channels一定要有bioconda和conda-forge
再次執(zhí)行:
$?conda env create --name snakemake-tutorial --file environment.yaml
報(bào)錯(cuò):
回去看清華鏡像,bioconda確實(shí)沒有5.4.5版本的snakemake-minimal唆垃,于是將yaml文件此處改為snakemak-minimal
再次執(zhí)行:
$?conda env create --name snakemake-tutorial --file environment.yaml
環(huán)境配置成功
step4:驗(yàn)證
$ conda activate snakemake-tutorial
$ snakemake --help
$ conda deactivate
另外,再snakemake跑nextstrain zika-tutorial時(shí)出現(xiàn)權(quán)限問題:
這樣解決的.......
有用到的鏈接:
Conda安裝? ?https://conda.io/projects/conda/en/latest/user-guide/install/linux.html
Snakemake安裝?https://snakemake.readthedocs.io/en/latest/tutorial/setup.html#requirements
Conda從yml文件指定環(huán)境包?http://www.reibang.com/p/37d202822e50
一個(gè)很好的Snakemake使用筆記? ?http://www.reibang.com/p/14b9eccc0c0e
Nextstrain Zika-tutorial?https://nextstrain.org/docs/tutorials/zika