Google Colab执行conda命令提示command not found问题问询
Colab 的 ! 前缀命令运行在非交互式子 shell 中,默认不会加载 .bashrc 等用户配置文件,执行的 conda init bash 仅修改了 .bashrc 配置,并未对后续 ! 执行的 shell 生效;出现 conda: command not found 是因为 conda 的可执行文件路径未加入当前 shell 的 PATH 环境变量。
1. 恢复conda命令识别
首先执行命令查找conda可执行文件的实际路径:find / -name "conda" -type f -executable 2>/dev/null | grep -E "bin/conda$"
拿到输出的路径(常见路径为/root/miniconda3/bin/conda)后,将对应bin目录加入当前会话的PATH:export PATH="/root/miniconda3/bin:$PATH"
此时执行conda --version即可正常识别conda命令。
2. 正确激活conda环境(适配Colab运行逻辑)
不要使用!conda activate <env_name>的方式激活环境,该方式激活的环境仅在当前子shell生效,后续执行的命令无法继承环境变量,推荐两种稳定用法:
- 单次执行环境内命令:使用
conda run直接指定环境运行命令,无需激活操作,示例:!conda run -n <your_env_name> python your_script.py - 连续执行多条环境内命令:先source加载conda.sh配置,再串联执行后续操作,示例:
!source /root/miniconda3/etc/profile.d/conda.sh && conda activate <your_env_name> && \ python first_task.py && \ pip install new_package && \ python second_task.py
3. 重置shell配置(可选)
如果需要撤销conda init bash对.bashrc的修改,执行以下命令删除conda相关的配置段即可:sed -i '/# >>> conda initialize >>>/,/# <<< conda initialize <<</d' ~/.bashrc
重启内核后shell配置即可恢复默认。
Colab实例为临时运行环境,你安装的conda、创建的自定义环境都会在实例断开连接或重置后全部丢失,无法持久化存储在content目录下。每次新开会话需要重新安装conda,或者提前将环境打包存储到挂载的谷歌云盘中,每次使用时解压调用。
内容的提问来源于stack exchange,提问作者Henryhu

