news 2026/4/15 16:14:09

pip install transformer_engine[pytorch]编译错误解决方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pip install transformer_engine[pytorch]编译错误解决方法

今天使用swift这个框架安装megatron,训模型,总是遇到一些莫名其妙的版本冲突bug,以及一些安装不上的bug。

下面直接给出修复安装的代码:

#!/bin/bash#transformer_engine 完整安装脚本(解决所有依赖问题)set-e echo"=== Transformer Engine 完整安装脚本 ==="source activate swift # 步骤1:确保基础依赖已安装 echo""echo"=== 步骤 1: 检查并安装基础依赖 ==="proxychains4 pip install--upgrade pip setuptools wheel ninja2>&1|tail-10# 步骤2:安装 cuDNN(如果还没有) echo""echo"=== 步骤 2: 确保 cuDNN 已安装 ==="if[!-f"$CONDA_PREFIX/include/cudnn.h"];then echo"安装 cuDNN via conda..."conda install-c nvidia cudnn-y2>&1|tail-10fi # 步骤3:安装 NCCL(之前遇到过这个问题) echo""echo"=== 步骤 3: 检查并安装 NCCL ==="if[!-f"$CONDA_PREFIX/include/nccl.h"]&&[!-f"/usr/include/nccl.h"];then echo"尝试安装 NCCL via conda..."conda install-c nvidia nccl-y2>&1|tail-10||{echo"⚠️ conda 安装 NCCL 失败,尝试系统级安装..."echo"lsz"|sudo-S apt-get install libnccl-dev-y2>&1|tail-10||echo"⚠️ 系统级安装也失败"}fi # 步骤4:设置所有必要的环境变量 echo""echo"=== 步骤 4: 设置编译环境变量 ==="export CUDA_HOME=$CONDA_PREFIX export CUDNN_INCLUDE_DIR=$CONDA_PREFIX/include export CUDNN_LIBRARY_DIR=$CONDA_PREFIX/lib export LD_LIBRARY_PATH=$CUDNN_LIBRARY_DIR:$LD_LIBRARY_PATH # 设置 NCCL 路径(如果存在)if[-f"$CONDA_PREFIX/include/nccl.h"];then export NCCL_INCLUDE_DIR=$CONDA_PREFIX/include export NCCL_LIB_DIR=$CONDA_PREFIX/lib elif[-f"/usr/include/nccl.h"];then export NCCL_INCLUDE_DIR=/usr/include export NCCL_LIB_DIR=/usr/lib/x86_64-linux-gnu export LD_LIBRARY_PATH=$NCCL_LIB_DIR:$LD_LIBRARY_PATH fi # 设置 CUDA 路径if[-d"/usr/local/cuda"];then export CUDA_HOME=/usr/local/cuda export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH fi echo"环境变量设置完成:"echo" CUDA_HOME=$CUDA_HOME"echo" CUDNN_INCLUDE_DIR=$CUDNN_INCLUDE_DIR"echo" NCCL_INCLUDE_DIR=${NCCL_INCLUDE_DIR:-未设置}"# 步骤5:尝试安装 transformer_engine(使用--no-build-isolation 避免依赖问题) echo""echo"=== 步骤 5: 安装 transformer_engine ==="echo"方法 1: 使用 --no-build-isolation(推荐)..."# 先尝试从标准 PyPI 安装 proxychains4 pip install transformer_engine[pytorch]--no-build-isolation2>&1|tee/tmp/te_install.log&&{echo"✓ transformer_engine 安装成功!"exit0}||{echo"⚠️ 标准 PyPI 安装失败,查看详细错误..."tail-50/tmp/te_install.log|grep-A20"error\|Error\|ERROR\|fatal"||tail-30/tmp/te_install.log}# 如果失败,尝试从 NVIDIA PyPI 安装 echo""echo"方法 2: 从 NVIDIA PyPI 安装..."proxychains4 pip install-i https://pypi.nvidia.com transformer_engine[pytorch] --no-build-isolation 2>&1 | tee /tmp/te_install_nvidia.log && {echo"✓ 从 NVIDIA PyPI 安装成功!"exit0}||{echo"⚠️ NVIDIA PyPI 安装也失败,查看详细错误..."tail-50/tmp/te_install_nvidia.log|grep-A20"error\|Error\|ERROR\|fatal"||tail-30/tmp/te_install_nvidia.log}# 如果还是失败,尝试安装特定版本 echo""echo"方法 3: 尝试安装较旧版本(可能更容易编译)..."proxychains4 pip install"transformer_engine[pytorch]==2.4.0"--no-build-isolation2>&1|tail-30&&{echo"✓ 安装旧版本成功!"exit0}||echo"⚠️ 旧版本安装也失败"# 最终诊断 echo""echo"=== 安装失败诊断 ==="echo"检查关键文件:"echo" cuDNN header: $([ -f "$CUDNN_INCLUDE_DIR/cudnn.h" ] && echo "✓ 存在" || echo "✗ 不存在")"echo" NCCL header: $([ -f "${NCCL_INCLUDE_DIR:-/none}/nccl.h" ] && echo "✓ 存在" || echo "✗ 不存在")"echo" CUDA: $([ -d "$CUDA_HOME" ] && echo "✓ 存在" || echo "✗ 不存在")"echo""echo"如果仍然失败,可能需要:"echo"1. 安装完整的 CUDA 工具包: conda install -c nvidia cuda-toolkit"echo"2. 或者安装系统级开发包: sudo apt-get install libcudnn8-dev libnccl-dev"echo"3. 检查编译错误日志: cat /tmp/te_install.log"

通过这个代码,成功安装。主要是在cursor的辅助下完成的。今天花费了几个小时搞这个transformer_engine。因为我记得megatron的环境一直不好配置安装。希望后面有人能从这篇博客中获取一点灵感。

后记

2026年1月15日于上海,周四。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/9 21:45:50

小说阅读API开发实战:从零搭建你的专属阅读平台

小说阅读API开发实战:从零搭建你的专属阅读平台 【免费下载链接】zhuishushenqi 追书神器 接口分析包装 项目地址: https://gitcode.com/gh_mirrors/zhu/zhuishushenqi 你是否曾想过拥有一个完全定制化的小说阅读应用?现在,通过这个功…

作者头像 李华
网站建设 2026/4/2 15:10:10

如何快速创建无限测试账户:Augment续杯插件终极使用指南

如何快速创建无限测试账户:Augment续杯插件终极使用指南 【免费下载链接】free-augment-code AugmentCode 无限续杯浏览器插件 项目地址: https://gitcode.com/gh_mirrors/fr/free-augment-code 在软件开发测试的日常工作中,频繁创建测试账户已成…

作者头像 李华
网站建设 2026/4/12 20:14:55

GTA V零崩溃终极攻略:YimMenu稳定运行完整解决方案

GTA V零崩溃终极攻略:YimMenu稳定运行完整解决方案 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu…

作者头像 李华
网站建设 2026/4/10 21:24:23

BG3脚本扩展器:解锁博德之门3无限潜能的终极指南

BG3脚本扩展器:解锁博德之门3无限潜能的终极指南 【免费下载链接】bg3se Baldurs Gate 3 Script Extender 项目地址: https://gitcode.com/gh_mirrors/bg/bg3se 想要彻底改变你的博德之门3游戏体验吗?BG3脚本扩展器为你打开了一扇通往无限创意世界…

作者头像 李华
网站建设 2026/3/30 3:46:43

Keil C51入门实践:基于STC89C52的工程模板搭建

从零开始搭建你的第一个STC89C52工程:Keil C51实战模板指南 你有没有过这样的经历?每次打开Keil,都要重新配置一遍芯片型号、晶振频率、HEX文件生成路径……甚至还要翻找之前的项目拷贝头文件和延时函数。更别提学生做实验时,十个…

作者头像 李华
网站建设 2026/3/26 22:12:38

PaddleOCR-VL核心优势解析|附网页推理部署完整步骤

PaddleOCR-VL核心优势解析|附网页推理部署完整步骤 1. 技术背景与问题提出 在现代企业数字化转型和智能文档处理需求日益增长的背景下,传统OCR技术已难以满足复杂场景下的多元素、多语言、高精度文档解析需求。早期的OCR系统主要聚焦于印刷体文本识别&…

作者头像 李华