---
title: 源码编译安装
description: "获取源码并合入适配Arm平台的补丁后进行编译安装操作。"
url: https://www.hikunpeng.com/document/detail/zh/SRA/ecosystemEnable/ScaNN/kunpengscann_02_0011.html
sourcePath: /source/zh/SRA/ecosystemEnable/ScaNN/kunpengscann_02_0011.html
indexId: 26e949edf00a5e723738ab9edfb220b4b089fecd39ae1aa590b15cce2990cd6162
---
# 源码编译安装

获取源码并合入适配Arm平台的补丁后进行编译安装操作。

1. 使用PuTTY工具，以root用户登录服务器。
2. 进入ScaNN源码编译路径。
  1 cd /path/to/scann

3. 进入ScaNN代码目录。
  1 cd google-research/scann

4. 安装编译依赖。
  1 yum install rsync python python3-devel python3-pip gcc g++

5. 配置pip源。
  1 2 pip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple pip3 config set global.trusted-host mirrors.huaweicloud.com

6. 将python3头文件路径添加到环境变量C_INCLUDE_PATH和CPLUS_INCLUDE_PATH中。根据实际安装路径设置参数，例如：
  1 2 export C_INCLUDE_PATH=/usr/include/python3.9:$C_INCLUDE_PATH export CPLUS_INCLUDE_PATH=/usr/include/python3.9:$CPLUS_INCLUDE_PATH

7. 执行ScaNN编译配置命令。
  1 python3 configure.py

  当回显信息显示成功生成配置文件.bazelrc时，代表ScaNN编译环境配置成功。

  配置ScaNN编译环境过程中，若提示ModuleNotFoundError: No module named 'tensorflow'信息。 解决方法：再次执行ScaNN编译环境配置命令。

  1 python3 configure.py

8. 执行编译命令。
  1 bazel clean; CC=gcc bazel build -c opt --cxxopt="-std=c++17" --copt=-fsized-deallocation --copt=-w --copt=-O3 --cxxopt=-O3 --copt=-march=armv8.2-a+lse+sve+f64mm --cxxopt=-march=armv8.2-a+lse+sve+f64mm --copt=-msve-vector-bits=256 --cxxopt=-msve-vector-bits=256 :build_pip_pkg

  若ScaNN编译过程中提示“unable to find valid certification path to requested target”，解决方法请参见编译ScaNN过程中提示找不到证书路径的解决办法。

  若ScaNN编译过程中提示Python.h: no such file or directory，解决方法请参见编译ScaNN过程中没有Python.h文件的解决办法。

9. 在当前路径生成ScaNN软件包.whl文件。
  1 ./bazel-bin/build_pip_pkg

  若当前目录生成“scann-1.2.10-cp39-cp39-linux_aarch64.whl”时，证明ScaNN软件包生成成功。

10. 安装ScaNN软件包。
  1 pip3 install scann-1.2.10-cp39-cp39-linux_aarch64.whl

11. 验证ScaNN是否安装成功。
  1 python -c "import scann"

  执行无异常信息，代表ScaNN安装成功。
