雖然perl面向?qū)ο竽芰ζ酰襭erl6一直為人詬病毛嫉,但是仍然有許多生物信息方面的軟件還是需要用到perl的
這就帶來了一個問題局嘁,有時候就會報錯,“缺少XX模塊”
也不得不承認(rèn)perl安裝模塊不如python安裝便利拒炎,直接
如果linux環(huán)境里是python3,可以先查看pip位置是否指向你用的python3
python -m pip
如果想用linux里的python2挨务,使用pip2安裝包击你,那么在pip2未安裝的情況下,可以:
wget?https://bootstrap.pypa.io/pip/2.7/get-pip.py
sudo python2 get-pip.py
python2 -m pip install PackageName
下面是一般的安裝方法谎柄,例如python3環(huán)境下安裝模塊
安裝:pip install PackageName
更新:pip install -U PackageName
移除:pip uninstall PackageName
搜索:pip search PackageName
乃至于在conda激活的環(huán)境中丁侄,pip直接就給安裝到當(dāng)前環(huán)境下了,簡直不要太方便朝巫。
例如鸿摇,我前幾天用QIIME1,想把biom格式轉(zhuǎn)為tsv劈猿,結(jié)果報錯拙吉,h5py找不到了潮孽。pip show h5py后,又能發(fā)現(xiàn)h5py就在服務(wù)器里筷黔,有點(diǎn)頭疼往史,不知道誰又動了環(huán)境變量。
就不管這個佛舱,直接
source activate qiime1
pip install h5py ? ? ? ? ? ? ? ? ? ? #裝到了當(dāng)前conda 環(huán)境的lib/python2.7/site-packages下
conda deactivate
就能用了椎例,很方便
perl的話就有點(diǎn)麻煩,雖然可以安裝perl-app-cpanminus请祖,但是用cpanm安裝模塊的時候订歪,由于環(huán)境變量的緣故,即便是在激活的conda環(huán)境中肆捕,它還是會安裝到PERL_LOCAL_LIB_ROOT PERL_MM_OPT PERL_MB_OPT 指向的位置陌粹,這里面有個安裝到當(dāng)前環(huán)境的笨方法
source activate env_name
env PERL5LIB="" PERL_LOCAL_LIB_ROOT="" PERL_MM_OPT="" PERL_MB_OPT="" cpanm module_name
perl -e 'print join "\n",@INC' ? ?#查看所有模塊位置
conda deactivate
這樣的話,perl模塊就會安裝到激活的conda環(huán)境中福压,具體在/lib/site_perl/5.26.2
這個方法還是有些笨,我在跑QIIME2的時候發(fā)現(xiàn)或舞,QIIME2也自帶了一個JSON的perl模塊荆姆,那么QIIME2是如何安裝的呢?仔細(xì)看了看QIIME2安裝的代碼映凳,原來有一條
conda install perl-json
優(yōu)秀優(yōu)秀胆筒,還能這么安裝模塊,那么以后想裝的話诈豌,可以先試試
conda search perl-module_name
另外仆救,查看已經(jīng)安裝哪些perl模塊
不管有沒有root權(quán)限,都可以利用?cpanm 然后安裝 ExtUtils::Installed模塊矫渔,instmodsh可以查看安裝了哪些perl模塊彤蔽,which instmodsh 查看它被安裝到哪里。
conda install perl-app-cpanminus