事情源于沃测,我在寫腳本的時候好唯,在腳本里面插入了一句 conda activate 環(huán)境名
, 然后出現(xiàn)如下的報錯提示
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
conda認為我沒有初始化環(huán)境舞终,我腳本是在bash環(huán)境下運行的,我也用conda init bash
初始化過氮双。因此效诅,問題肯定不是出在這里胀滚。
利用關鍵詞"conda activate in bash script"檢索,我找到了兩種解決方法乱投。
方法1: 在腳本中多加一句
source $HOME/miniconda/etc/profile.d/conda.sh
注意咽笼,我的conda是安裝在家目錄下的miniconda目錄中,對于非家目錄的安裝方式戚炫,要修改 $HOME/miniconda
剑刑。
方法2: 我們可以通過 conda run
來運行給定環(huán)境下的命令,假如双肤,我們安裝了一個環(huán)境rna-seq, 里面有一個程序叫做STAR, 我們可以隨便寫一個tmp.sh腳本施掏,內(nèi)容為
conda run -n rna-seq STAR --help
那么,此時運行 bash tmp.sh 就不會報錯茅糜。也就是說七芭,你并不是一定要用conda activate 啟動環(huán)境,才能調(diào)用命令蔑赘,你其實可以調(diào)用某個環(huán)境的給定指令狸驳。
方法2相對于方法1有個非常大的優(yōu)勢预明,那就是,如果你有多個不同python版本的環(huán)境锌历,你不用擔心寫腳本的時候?qū)懥藛又樱峭藢懲顺觥D阒恍枰谠瓉淼拇a前加上一句究西, conda run -n 環(huán)境名
。