如何多机复用 conda 环境

跨机器 Python & CUDA 环境适配教程

场景说明

  • 痛点:在机器 A 安装的环境(如 Docker 内部或特定服务器),换到机器 B 后,由于宿主机 CUDA 路径不同或缺失,导致 DeepSpeed/Transformers 报错。

  • 核心方案:环境自包含化。将 CUDA 编译器(nvcc)直接装入 Conda,实现"只要能挂载硬盘,环境就能跑"。

第一步:定位并修复 Conda 环境入口

当你在新机器上使用共享存储(如 NAS/NFS)中的 Conda 时,首先要确保能正确调用 conda 命令。

  1. 修改 ~/.bashrc:
    确保你的 Conda 初始化路径指向共享盘中的位置,可以用 which conda 查看位置:
python 复制代码
# 示例:根据你的实际 miniconda 路径修改
export PATH="/mnt/xxx/miniconda3/bin:$PATH"
source /audio-storage/liujie/miniconda3/etc/profile.d/conda.sh
  1. 刷新配置:
python 复制代码
source ~/.bashrc

第二步:环境内 CUDA 检查与"局部重装"

不要依赖 /usr/local/cuda,我们要检查 Conda 环境内部是否具备编译能力。

  1. 激活你的目标环境:
python 复制代码
conda activate avo-speech
  1. 检查 nvcc (CUDA 编译器):
python 复制代码
which nvcc
  1. 如果返回为空(Command not found),执行"环境内重装":
    此步骤会将编译器安装到该 Conda 环境的 bin/ 目录下:
python 复制代码
conda install -c nvidia cuda-nvcc cuda-runtime cuda-toolkit -y

第三步:动态路径适配(核心适配点)

再次检查,

确认 nvcc 的绝对路径:

python 复制代码
which nvcc

获取的路径即下面的 CUDA_HOME 路径,或者叫 CONDA_PREFIX 路径

为了让 DeepSpeed 这种"死脑筋"动态找到正确的编译器,需要将 CUDA_HOME 指向当前的 Conda 环境。

  1. 手动添加环境变量并刷新(临时生效):
python 复制代码
export CUDA_HOME=$CONDA_PREFIX
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib:$LD_LIBRARY_PATH
  1. 自动化适配(推荐,一劳永逸):
    在 Conda 环境激活时自动设置这些变量。修改 ~/.bashrc:
python 复制代码
export CUDA_HOME=$CONDA_PREFIX
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib:$LD_LIBRARY_PATH

✅ 最终验证

执行以下命令,如果输出正确,适配即告成功:

nvcc -V:应显示 CUDA 版本且路径在 miniconda3/envs/... 下。

python -c "import torch; print(torch.cuda.is_available())":应返回 True。

推荐关注

笔者AI行业算法资深从业者,日常分享AI算法和技术实践、趋势,干货多多,推荐关注 wechat Jae.Log

相关推荐
Είναι η κοπέλα1 天前
Python 虚拟环境:venv、conda 与 Python 版本选择全解
开发语言·python·conda
夏天拐跑了西瓜4 天前
一文入门LangChain:从框架认知到构建你的第一个AI Agent
python·langchain·conda·agent
weixin_461769404 天前
机械臂SDK运行日志
conda·sdk
三点水-here5 天前
从 Miniconda 迁移到 Miniforge3 全记录:安装、配置、环境迁移与排错实录
python·conda
MI_farmer6 天前
Anaconda 安装在 D 盘但虚拟环境跑到 C 盘,以及 Conda PermissionError: WinError 5 的解决方法
c语言·开发语言·conda
伞伞悦读14 天前
【第39期】Python 第三方包安装详解:pip、conda、requirements、版本锁定和镜像源
python·conda·pip
梦想不只是梦与想15 天前
环境管理:Conda 与 venv
python·conda·uv
梦想不只是梦与想17 天前
环境管理系统:Conda(一)
python·conda·环境隔离
Blockbuater_drug18 天前
Protenix: conda 环境部署、零基础安装
conda·开源模型·字节跳动·v2·蛋白结构预测·protenix
AlfredZhao19 天前
执行新项目 python 脚本前,先用 conda 建一个独立环境
conda