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

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

相关推荐
郏国上5 分钟前
如何循环同步下载文件
开发语言·javascript·node.js
星梦清河11 分钟前
宋红康 JVM 笔记 Day08|堆
jvm·笔记
问道飞鱼1 小时前
【Linux知识】Linux 设置账号密码永不过期
linux·账号·过期·密码过期
AAA修煤气灶刘哥1 小时前
网络编程原来这么好懂?TCP 三次握手像约会,UDP 像发朋友圈
后端·python·网络协议
WAZYY06191 小时前
C#实现PDF合并、裁剪功能
开发语言·pdf·c#·pdf合并·pdf工具·pdf切割
悟能不能悟1 小时前
java去图片水印的方法
java·人工智能·python
skywalk81632 小时前
升级DrRacket8.10到8.18版本@Ubuntu24.04
linux·运维·服务器·lisp·racket
ftpeak2 小时前
Rust Web开发指南 第六章(动态网页模板技术-MiniJinja速成教程)
开发语言·前端·后端·rust·web
编码浪子2 小时前
趣味学Rust基础篇(数据类型)
开发语言·后端·rust