conda軟件安裝的進(jìn)階操作

1. 尋找軟件所在的鏡像

用conda安裝軟件的標(biāo)準(zhǔn)語法格式為:

$ conda install -c <channel> <software>

其中-c這個(gè)參數(shù)很重要,通過它來指定軟件下載的鏡像位置

對于我們這些生物信息學(xué)的從業(yè)人員來說,最常用的channel(這里可以理解成鏡像)就是bioconda了,如果想要安裝生物信息學(xué),一般都會先到 bioconda官網(wǎng) 上找一找自己想要的軟件在不在bioconda的官方鏡像的列表中

這里以搜索BWA為例

如果軟件正好在bioconda官方鏡像里,萬事大吉,直接用下面的命令安裝就可以了

$ conda install -c bioconda bwa

如果你已經(jīng)將bioconda這個(gè)channel加到自己的默認(rèn)channel列表中,則不指定-c參數(shù)也可以

但是如果你要的軟件不在bioconda中怎么辦?

這時(shí)你可以通過執(zhí)行 anaconda search -t <software>來列出保存目標(biāo)軟件的所有官方鏡像

比如,如果你要安裝CNVnator(這是一個(gè)安裝過程神級坑的軟件),它就不在bioconda中,執(zhí)行

$ anaconda search -t cnvnator

得到的檢索結(jié)果如下:

Using binstar api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
     Name                      |  Version | Package Types   | Platforms
     ------------------------- |   ------ | --------------- | ---------------
     pwwang/cnvnator           |    0.3.3 | conda           | linux-64
                                          : a tool for CNV discovery and genotyping from depth-of-coverage by mapped reads
Found 1 packages

通過上面的檢索結(jié)果我們就知道目前只有唯一一個(gè)保存CNVnator的conda鏡像,為pwwang,這是就可以通過指定剛才找到的鏡像完成軟件的安裝了:

$ conda install -c pwwang cnvnator

2. conda中的Python與系統(tǒng)自帶的Python打架

在你安裝完conda(不論是Anaconda還是Miniconda),它會自帶安裝對應(yīng)的Python版本,而你的系統(tǒng)原先也安裝了Python,這時(shí)兩個(gè)來源兩個(gè)版本的Python會發(fā)生沖突,使得你新安裝的conda運(yùn)行報(bào)錯(cuò),比如簡單地運(yùn)行 conda list,會出現(xiàn)以下一長串的報(bào)錯(cuò)信息:

Error processing line 1 of /usr/local/lib/python2.7/site-packages/matplotlib-2.1.2-py2.7-nspkg.pth:

Fatal Python error: initsite: Failed to import the site module
Traceback (most recent call last):
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 168, in addpackage
    exec(line)
  File "<string>", line 1, in <module>
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/importlib/util.py", line 14, in <module>
    from contextlib import contextmanager
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/contextlib.py", line 5, in <module>
    from collections import deque
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/collections/__init__.py", line 27, in <module>
    from reprlib import recursive_repr as _recursive_repr
  File "/usr/local/lib/python2.7/site-packages/reprlib/__init__.py", line 7, in <module>
    raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/site.py", line 73, in <module>
    __boot()
  File "/usr/local/lib/python2.7/site-packages/site.py", line 47, in __boot
    addsitedir(item)
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 207, in addsitedir
    addpackage(sitedir, name, known_paths)
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/site.py", line 178, in addpackage
    import traceback
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/traceback.py", line 3, in <module>
    import collections
  File "/disk2/yut/SOFTWARE/miniconda3/lib/python3.7/collections/__init__.py", line 27, in <module>
    from reprlib import recursive_repr as _recursive_repr
  File "/usr/local/lib/python2.7/site-packages/reprlib/__init__.py", line 7, in <module>
    raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.

仔細(xì)閱讀上面的報(bào)錯(cuò)信息,你會發(fā)現(xiàn)這就是系統(tǒng)的Python和conda里的Python沖突了(我喜歡稱這種現(xiàn)象為掐架、打架),這也是conda這個(gè)軟件安裝神器在給你帶來方便的同時(shí)帶來的副產(chǎn)品:它會污染你的環(huán)境變量!

遇到兩個(gè)Python環(huán)境沖突的情況,我一般的解決情況就是,關(guān)閉系統(tǒng)的Python,即將系統(tǒng)的Python路徑從我的環(huán)境變量中刪除

$ export PYTHONPATH=''

再執(zhí)行conda list就不會再報(bào)錯(cuò)了

3. 軟件太大老是下載中斷

在用conda安裝軟件的過程中還會經(jīng)常遇到的一個(gè)問題,就是:

我要下載一個(gè)軟件,conda會告訴我這個(gè)軟件底層依賴好幾個(gè)其他的軟件,需要將它們一起下載安裝,這個(gè)時(shí)候這一大堆軟件中可能有幾個(gè)體量很大,上百M(fèi)B,很容易下著下著網(wǎng)絡(luò)連接就中斷了,而conda有沒有斷點(diǎn)下載功能,一旦下載中斷,conda就會終止安裝進(jìn)程退出運(yùn)行

這個(gè)時(shí)候你可以嘗試通過 wget 把那幾個(gè)很大的軟件的安裝包下到本地,然后把它們移到conda的默認(rèn)安裝包下載路徑下,這樣再執(zhí)行conda install時(shí),就會跳過這幾個(gè)軟件的下載過程

conda的默認(rèn)安裝包下載保存路徑為:miniconda3/pkgs

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容