conda 环境配置

conda 环境配置

一、背景

公司里面因为a100 等gpu往往为了资源灵活分配,使用数据挂载、docker镜像自动部署,模型训练所需命令执行。通常我们可以直接部署一个常用的docker 镜像环境,进行快速创建训练&推理机器,但随着我们使用框架不同,部分库更新版本问题灵活变动,经常需要手动调整,重新配置。

因此这里编写shell命令,在数据挂载中,提前dump好比较大的pip和工具,如anaconda3、torch、cuda工具库等。

二、执行命令

shell 复制代码
#!/usr/bin/env bash
# ------------------------------------------------------------
# File  : auto_conda_setup.sh
# Desc  : 一键完成 Anaconda3-2024.10-1 安装、环境配置、pip 包装包
# Usage : chmod +x auto_conda_setup.sh && ./auto_conda_setup.sh
# ------------------------------------------------------------
set -euo pipefail

############################ 用户可改参数 ############################
INSTALLER="Anaconda3-2024.10-1-Linux-x86_64.sh"   # 安装包文件名
CONDA_URL="https://repo.anaconda.com/archive/${INSTALLER}"
CONDA_INSTALL_PREFIX="$HOME/anaconda3"            # 安装目录
ENV_NAME="py311"                                  # 虚拟环境名
PYTHON_VERSION="3.11"                             # 环境 Python 版本
PIP_PKGS=(                                        # 需要 pip 安装的包,可替换为 -r requeryments
  numpy pandas scikit-learn matplotlib jupyterlab
  requests tqdm rich
)
#####################################################################

# 颜色输出
R="\033[1;31m" G="\033[1;32m" Y="\033[1;33m" NC="\033[0m"
log_info()  { echo -e "${G}[INFO]${NC} $*"; }
log_warn()  { echo -e "${Y}[WARN]${NC} $*"; }
log_error() { echo -e "${R}[ERROR]${NC} $*" >&2; }

# 0. 检查系统
[[ "$(uname -s)" == "Linux" ]] || { log_error "仅支持 Linux"; exit 1; }
command -v wget >/dev/null || { log_error "请先安装 wget"; exit 1; }

# 1. 下载 Anaconda 安装包(若本地已存在则跳过)
if [[ -f "$INSTALLER" ]]; then
  log_warn "安装包已存在,跳过下载"
else
  log_info "正在下载 ${CONDA_URL} ..."
  wget -c "$CONDA_URL" -O "$INSTALLER"
fi

# 2. 静默安装(-b 批处理,-p 指定路径)
if [[ -d "$CONDA_INSTALL_PREFIX" ]]; then
  log_warn "Anaconda 已安装于 ${CONDA_INSTALL_PREFIX},跳过安装"
else
  log_info "开始静默安装 Anaconda3 ..."
  bash "$INSTALLER" -b -p "$CONDA_INSTALL_PREFIX"
fi

# 3. 初始化 shell(bash & zsh)
if ! grep -q "$CONDA_INSTALL_PREFIX/etc/profile.d/conda.sh" ~/.bashrc 2>/dev/null; then
  log_info "初始化 bash ..."
  "$CONDA_INSTALL_PREFIX/bin/conda" init bash
fi
if command -v zsh >/dev/null && ! grep -q "$CONDA_INSTALL_PREFIX/etc/profile.d/conda.sh" ~/.zshrc 2>/dev/null; then
  log_info "初始化 zsh ..."
  "$CONDA_INSTALL_PREFIX/bin/conda" init zsh
fi

# 4. 使 conda 立即生效(当前脚本内)
# shellcheck source=/dev/null
source "$CONDA_INSTALL_PREFIX/etc/profile.d/conda.sh"

# 替换为自己公司vpn(可选)
log_info "配置百度vpn ..."
export http_proxy=xxx
export https_proxy=xxx

# 5. 换清华源(国内加速)
log_info "配置 Conda 清华源 ..."
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes

# 6. 创建并激活虚拟环境(若已存在则跳过)
if conda info --envs | grep -qw "$ENV_NAME"; then
  log_warn "Conda 环境 ${ENV_NAME} 已存在,跳过创建"
else
  log_info "创建 Conda 环境 ${ENV_NAME} (Python ${PYTHON_VERSION}) ..."
  conda create -yn "$ENV_NAME" python="$PYTHON_VERSION"
fi
log_info "激活环境 ${ENV_NAME} ..."
conda activate "$ENV_NAME"

# 7. 换 pip 清华源 + 升级 pip
log_info "配置 pip 清华源并升级 pip ..."
mkdir -p ~/.pip
cat > ~/.pip/pip.conf <<'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
python -m pip install -U pip

# 8. 安装 pip 包
log_info "开始 pip 安装:${PIP_PKGS[*]} ..."
pip install "${PIP_PKGS[@]}"

# 9. 打印信息
log_info "全部完成!Conda 信息如下:"
conda --version
log_info "已创建并激活的环境:"
conda info --envs
log_info "Python 路径:$(which python)"
log_info "pip 路径:$(which pip)"
log_info "JupyterLab 若需使用,可直接执行:jupyter lab"

# 10. 提示重新加载 shell
log_warn "若需在新终端使用 conda,请执行:source ~/.bashrc  或  source ~/.zshrc"
source ~/.bashrc
相关推荐
长江后浪博客5 小时前
Conda环境下测试Intel NPU:Python版本如何选择?
开发语言·python·conda·openvino·intel npu
伞伞悦读3 天前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda
cooldream20094 天前
Conda 镜像源 404 错误完全解决指南
conda·ai编程
CODER03045 天前
本地部署语音识别框架FunAudioLLM——Fun-ASR-Nano-2512模型
人工智能·conda·语音识别·audiolm
zhou135284822675 天前
Anaconda Distribution 安装使用文档与 Conda 常用命令详解
conda
kaixin_啊啊6 天前
conda环境迁移
conda
小桥流水---人工智能6 天前
Conda环境创建成功但CMD无法正确激活:为什么出现 `(pytorchgpu)` 仍可能是“假激活”?
conda
小桥流水---人工智能6 天前
Windows下Conda无法创建Python 3.11虚拟环境:从镜像源404到PackagesNotFoundError的完整排查与解决
windows·conda·python3.11
vortex58 天前
从Conda到UV:Python项目依赖管理的现代演进
python·conda·uv
CODER03049 天前
Anaconda和Mamba创建环境管理包常用命令合集
python·深度学习·conda·虚拟环境·mamba·常用命令大全