Ubuntu18.04部署DeepFaceLab时conda activate shell未正确配置报错求助
DeepFaceLab部署shell脚本执行conda activate报错解决方案
问题背景
- 在DeepFaceLab部署配置阶段,需要通过自定义shell脚本
test1.bash执行conda activate命令 - 已尝试执行
conda init,shell返回Noaction,配置无实际变更 - 已尝试同类问题公开解决方案,问题仍未解决,初步怀疑为驱动异常
设备配置信息
系统版本
Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic
硬件信息
NVIDIA 17:00.0 VGA compatible controller: NVIDIA Corporation TU102GL [Quadro RTX 6000/8000] (rev a1) 17:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1) 17:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1) 17:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)
完整报错信息
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'.
问题原因
该报错与显卡驱动无关,核心原因是shell脚本默认以非交互模式运行,不会自动加载用户目录下的.bashrc配置,而conda init写入的环境初始化逻辑默认存放在.bashrc中,导致脚本运行时无法识别conda activate命令。执行conda init返回Noaction是因为系统检测到.bashrc中已存在对应初始化代码,不会重复写入。
可行解决方案
- 方案1:脚本内手动加载conda初始化脚本(推荐,稳定性最高)
先确认自身conda安装路径,默认安装路径通常为~/anaconda3、~/miniconda3或/opt/conda。在test1.bash脚本的最开头、conda activate命令之前新增一行:
保存后直接执行脚本即可,不需要额外修改全局shell配置。source <你的conda实际安装路径>/etc/profile.d/conda.sh - 方案2:强制初始化bash环境
在终端直接执行以下命令,强制重写bash的conda初始化配置:
执行完成后完全关闭当前终端,打开新终端后,使用conda init bash --forcebash test1.bash命令运行脚本。注意禁止使用sh test1.bash执行:sh会默认调用dash解释器,不兼容conda的环境激活逻辑。 - 方案3:直接调用conda二进制文件激活,跳过shell配置依赖
如果不想修改全局shell配置,可以在脚本中直接使用conda的绝对路径执行激活操作,示例(替换路径和环境名为实际值):/home/<你的用户名>/anaconda3/bin/conda activate <DeepFaceLab对应的conda环境名>
补充排查
如果执行完上述操作仍报错,先在终端执行echo $SHELL确认当前默认shell,如果输出为/bin/zsh,则将方案2中的bash替换为zsh,执行conda init zsh --force后重启终端即可。
内容的提问来源于stack exchange,提问作者user19257762
相关产品推荐
相关产品推荐

