linux(ubuntu)中Conda、CUDA安装Xinference报错ERROR: Failed to build ( ...

打印 上一主题 下一主题

主题 966|帖子 966|积分 2908



  
如果符合标题情况
执行的:
  1. pip install "xinference[all]"
复制代码
大概率是终极办理的情况。

一、常规办法

llama-cpp-python 依赖 CMake、Make 和 g++ 来编译,以是可能是 缺少依赖 或者 情况设置不对。按照以下步调排查问题并办理:

1. 确保 Python 版本符合要求
llama-cpp-python 必要 Python >=3.8,推荐 Python 3.10 或更高:
  1. python --version
复制代码
如果 Python 版本低于 3.8,建议升级。
如果利用 conda:
  1. conda create -n xinference_env python=3.10
  2. conda activate xinference_env
复制代码

2. 安装必要的依赖
如果你在 Ubuntu / Debian
  1. sudo apt update
  2. sudo apt install -y cmake make g++ python3-dev
复制代码
如果你在 CentOS / RHEL
  1. sudo yum install -y cmake make gcc-c++ python3-devel
复制代码
如果你在 macOS
  1. brew install cmake
复制代码

3. 重新尝试安装
利用 pip 重新安装:
  1. pip install --no-cache-dir llama-cpp-python
复制代码
或者 欺压重新编译
  1. CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install --force-reinstall --no-cache-dir llama-cpp-python
复制代码
如果你有 NVIDIA GPU 并希望利用 CUDA 加速:
  1. CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python --no-cache-dir
复制代码

4. 检查 pip 是否最新
偶尔 pip 版本太旧会导致安装失败:
  1. pip install --upgrade pip setuptools wheel
复制代码

5. 利用 Prebuilt 版本(跳过编译)
如果仍然失败,可以安装 预编译版本
  1. pip install llama-cpp-python --prefer-binary
复制代码

总结
检查 Python 版本 (python --version
)
安装依赖 (sudo apt install cmake make g++ python3-dev)
打扫缓存并欺压重新安装 (pip install --no-cache-dir llama-cpp-python

)
尝试 CUDA 版本(如果有 GPU)
利用预编译版本 (pip install llama-cpp-python --prefer-binary
)

二、继续

在这种情况下,通常是因为构建情况的某些依赖或版本不满足要求。请按照以下步调逐项排查和办理问题:
1. 升级构建工具和 Python 打包工具
确保你的 pip、setuptools 和 wheel 均为最新版本:
  1. pip install --upgrade pip setuptools wheel
复制代码

2. 检查 CMake 版本
低版本的 CMake 可能导致编译失败。请确认你的 CMake 至少在 3.18 以上:
  1. cmake --version
复制代码
如果版本较低,建议更新 CMake:


  • 利用 Snap 安装最新版本:
    1. sudo snap install cmake --classic
    复制代码
  • 或者从 CMake 官网 下载最新二进制包并安装。

3. 检查 g++ 编译器版本
llama-cpp-python 必要支持 C++17。请确保 g++ 版本足够新(推荐 g++ 9 或更高):
  1. g++ --version
复制代码
如果版本过低,安装 g+±9(或更高版本):
  1. sudo apt install g++-9
复制代码
并通过 update-alternatives 设置默认 g++:
  1. sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
复制代码

4. 设置 CUDA 情况变量
既然你已经安装了 CUDA,请确保情况变量正确设置,特别是 CUDA_HOME(这有助于 CMake 定位 CUDA 库):
  1. export CUDA_HOME=/usr/local/cuda
  2. export PATH=$CUDA_HOME/bin:$PATH
  3. export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
复制代码
你可以将这些设置添加到 ~/.bashrc 或 ~/.profile 中以便永久见效。

5. 尝试详细日志安装
利用更详细的日志输出安装,以便获取具体错误信息:
  1. pip install --no-cache-dir llama-cpp-python
  2. -v
复制代码
观察输出日志,确认是否有其他缺失的依赖或编译错误提示。

6. 从源码安装
如果通过 pip 直接安装仍然失败,尝试从源码克隆并安装:
  1. git clone https://github.com/abetlen/llama-cpp-python.git
  2. cd llama-cpp-python
  3. pip install .
复制代码
如许可以得到更多编译过程中的详细信息,有助于定位问题。

三、继续

错误日志可能问题出在 CMake 无法找到 vendor/llama.cpp 目次下应有的 CMake 设置文件,以及 llava 相干子目次缺失。这通常有两种原因:

  • 源码包缺失子模块内容
    如果你直接通过 pip 安装,而源码包中未包含子模块(即 vendor/llama.cpp 及其子目次),就会导致构建失败。办理方案是从 GitHub 克隆仓库时利用 --recursive 选项,确保拉取全部子模块内容,然后再安装。例如:
    1. git clone --recursive https://github.com/abetlen/llama-cpp-python.git
    2. cd llama-cpp-python
    3. pip install .
    复制代码
  • 不必要构建 llava 支持
    错误日志显示构建过程中试图添加 llava 相干目标,但对应目次缺失。如果你不必要 llava(通常用于特定扩展功能),可以在编译时禁用它。尝试在安装时传递 CMake 参数关闭 llava 模块:
    1. CMAKE_ARGS="-DLLAMA_CPP_BUILD_LLAVA=OFF" pip install --no-cache-dir llama-cpp-python
    复制代码
    如许可以跳过对不存在目次的引用。

综合建议


  • 方案一:从源码克隆并安装(推荐用于 CUDA 支持)
    通过 Git 克隆完整仓库(包含子模块)再安装:
    1. git clone --recursive https://github.com/abetlen/llama-cpp-python.git
    2. cd llama-cpp-python
    3. pip install .
    复制代码
  • 方案二:禁用 llava 模块重新编译
    如果你确定不必要 llava 支持,可以禁用它:
    1. CMAKE_ARGS="-DLLAMA_CPP_BUILD_LLAVA=OFF" pip install --no-cache-dir llama-cpp-python
    复制代码

四、缺少 libgomp库

从错误日志来看,构建过程中链接 libggml-cpu.so 时缺失 OpenMP 运行时库(libgomp.so.1),导致一系列 GOMP_* 符号无法解析。这通常表明当前体系中缺少 GNU OpenMP 库。
为办理此问题,请依次执行以下步调:

  • 安装 libgomp 库
    在 Ubuntu 体系中,通常可以通过以下命令安装 libgomp:
    1. sudo apt-get update
    2. sudo apt-get install libgomp1
    复制代码
    如果必要开辟头文件,也可以安装:
    1. sudo apt-get install libgomp-dev
    复制代码
  • 验证库路径
    安装后,确认 libgomp.so.1 存在于体系库目次(如 /usr/lib/x86_64-linux-gnu/):
    1. locate libgomp.so.1
    复制代码
    或者:
    1. find /usr -name "libgomp.so.1"
    复制代码
  • 确保编译器调用正确的 OpenMP 链接标志
    如果依然报错,请检查是否必要在编译参数中添加 -fopenmp。对于 llama-cpp-python 来说,通常 CMake 会自动检测,如果未能正确链接,可以尝试在情况变量中设置相应的 CMake 参数,例如:
    1. export CMAKE_ARGS="-DCMAKE_CXX_FLAGS=-fopenmp"
    2. pip install --no-cache-dir llama-cpp-python
    复制代码
(终极办理)在 Conda 情况中安装 libgomp


  • 确认 libgomp 安装成功
    在当前 Conda 情况中执行:
    1. conda list libgomp
    复制代码
    确认输出中包含 libgomp。确保库文件(如 libgomp.so.1)位于 $CONDA_PREFIX/lib 目次下。
  • 设置情况变量
    为确保编译时可以正确找到 OpenMP 库,可以将 Conda 库路径添加到 LD_LIBRARY_PATH 中(如果尚未设置):
    1. export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
    复制代码
    建议将此命令添加到 Conda 情况的激活脚本中,以便每次激活情况时自动见效。
  • 重新编译安装 llama-cpp-python
    在确保 libgomp 可用后,重新尝试安装 llama-cpp-python:
    1. pip install --no-cache-dir llama-cpp-python
    复制代码
    如果你必要启用 OpenMP 支持且遇到链接问题,可以尝试添加编译标志:
    1. export CMAKE_ARGS="-DCMAKE_CXX_FLAGS=-fopenmp"
    2. pip install --no-cache-dir llama-cpp-python
    复制代码
  • 检查编译日志
    观察编译输出,确认 libgomp 相干的错误不再出现。如果仍有问题,建议利用详细日志:
    1. pip install --no-cache-dir llama-cpp-python
    2. -v
    复制代码
    分析日志中的错误信息,以便进一步调整情况或 CMake 参数。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表