CondaError: Run ‘conda init‘ before ‘conda activate‘

问题:

conda activate python310

CondaError: Run 'conda init' before 'conda activate'

conda init bash

no change /root/miniconda3/condabin/conda

no change /root/miniconda3/bin/conda

no change /root/miniconda3/bin/conda-env

no change /root/miniconda3/bin/activate

no change /root/miniconda3/bin/deactivate

no change /root/miniconda3/etc/profile.d/conda.sh

no change /root/miniconda3/etc/fish/conf.d/conda.fish

no change /root/miniconda3/shell/condabin/Conda.psm1

no change /root/miniconda3/shell/condabin/conda-hook.ps1

no change /root/miniconda3/lib/python3.13/site-packages/xontrib/conda.xsh

no change /root/miniconda3/etc/profile.d/conda.csh

no change /root/.bashrc

解决办法:

vi ~/.bashrc

修改代码,如下:

bash 复制代码
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything (核心判断,避免非交互模式执行冗余配置)
[ -z "$PS1" ] && return

# ------------------------------
# 1. 历史命令配置(优化重复命令过滤)
# ------------------------------
# 不记录重复命令、以空格开头的命令(避免敏感命令泄露)
HISTCONTROL=ignoredups:ignorespace:ignoreboth
# 历史命令追加到文件(不覆盖)
shopt -s histappend
# 历史命令长度配置(增大默认值,保留更多历史)
HISTSIZE=10000  # 内存中保留的历史命令数
HISTFILESIZE=20000  # 历史文件中保留的命令数
# 记录命令执行时间(便于追溯)
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
# 禁止历史命令展开时的音效(避免终端杂音)
set bell-style none

# ------------------------------
# 2. 终端基础配置(优化窗口与显示)
# ------------------------------
# 每次命令后检查窗口大小,自动更新 LINES/COLUMNS
shopt -s checkwinsize
# 启用 glob 通配符扩展(支持更灵活的文件匹配,如 *.txt、a{b,c}d)
shopt -s extglob
# 修复 cd 命令的路径补全(如 cd ../.. 可简化为 cd ....)
shopt -s autocd
# 允许文件名包含特殊字符(如空格、中文)的正确处理
LC_ALL=en_US.UTF-8  # 统一字符编码,避免中文乱码
LANG=en_US.UTF-8

# 使 less 命令支持非文本文件(如压缩包、图片)的预览
if [ -x /usr/bin/lesspipe ]; then
    eval "$(SHELL=/bin/sh lesspipe)"
fi

# ------------------------------
# 3. 终端提示符配置(美化与实用信息)
# ------------------------------
# 识别 chroot 环境(若在容器/虚拟环境中,提示符会显示标识)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# 自动检测终端是否支持颜色,优先启用彩色提示符
color_prompt=no
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # 终端支持颜色(Ecma-48 标准)
    color_prompt=yes
fi

# 彩色提示符配置(区分用户/主机/路径,Conda 环境会自动追加)
if [ "$color_prompt" = yes ]; then
    # 格式:[chroot]用户@主机:路径$ (root 用户提示符为 #,普通用户为 $)
    if [ "$EUID" -eq 0 ]; then
        # root 用户(红色提示符,警示权限)
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\# '
    else
        # 普通用户(绿色提示符,正常标识)
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    fi
else
    # 无颜色 fallback
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt

# Xterm/Rxvt 终端:设置窗口标题为"用户@主机:路径"(便于多窗口区分)
case "$TERM" in
xterm*|rxvt*|konsole*|gnome-terminal*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# ------------------------------
# 4. 文件操作别名(简化常用命令)
# ------------------------------
# 启用 ls 颜色支持(区分文件类型:目录蓝色、可执行绿色等)
if [ -x /usr/bin/dircolors ]; then
    # 优先使用用户自定义的颜色配置,无则用默认
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    # ls 系列别名(带颜色、显示详细信息)
    alias ls='ls --color=auto --time-style=long-iso'  # 显示 ISO 格式时间
    alias ll='ls -alF'  # 显示所有文件(含隐藏)、详细信息、末尾加类型标识(/ 表目录)
    alias la='ls -A'    # 显示所有文件(含隐藏,不含 . 和 ..)
    alias l='ls -CF'    # 按列显示、加类型标识
fi

# 其他实用别名(避免手滑删除、简化操作)
alias rm='rm -i'          # 删除前确认(避免误删)
alias cp='cp -i'          # 覆盖前确认
alias mv='mv -i'          # 移动/重命名前确认
alias grep='grep --color=auto'  # grep 结果高亮匹配内容
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias vi='vim'            # 用 vim 替代默认 vi(功能更全)
alias update='apt update && apt upgrade -y'  # 一键更新系统(Debian/Ubuntu 适用)

# ------------------------------
# 5. 自定义别名加载(分离配置,便于维护)
# ------------------------------
# 若存在 ~/.bash_aliases,加载用户自定义别名(避免主文件过于臃肿)
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# ------------------------------
# 6. 命令补全配置(增强终端交互)
# ------------------------------
# 启用可编程命令补全(支持命令、参数、文件名补全)
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

# ------------------------------
# 7. Conda 初始化(修复激活问题,自动加载环境)
# ------------------------------
# 原注释的手动激活命令已无用,替换为自动激活逻辑
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/root/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"  # 执行 Conda 钩子,启用 conda 命令
else
    #  fallback:手动添加 Conda 路径(避免钩子执行失败)
    if [ -f "/root/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/root/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/root/miniconda3/bin:$PATH"  # 将 Conda 加入系统路径
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

# 自动激活 python310 环境(避免每次手动激活,可根据需求注释)
if conda info --envs | grep -q "python310"; then
    # 仅在环境存在时激活(避免报错)
    conda activate python310
else
    echo "Warning: Conda environment 'python310' not found. Skipping auto-activation."
fi

source ~/.bashrc

/usr/bin/sh: 29: source: not found

#bash

自动进入虚拟环境,成功!

相关推荐
Scott9999HH4 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
Yana.nice5 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海5 小时前
python 列表、元组、集合和字典
开发语言·python
克里斯蒂亚诺更新5 小时前
ruoyi角色权限的对应关系
笔记
二十雨辰5 小时前
[爬虫]-Urllib
爬虫·python
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨6 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
玉鸯7 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent