---
title: 源码编译安装
description: "TensorFlow 1.15.5源码编译安装的主要步骤包括安装编译依赖、获取源码、配置相关选项、编译、安装构建好的pip软件包。"
url: https://www.hikunpeng.com/document/detail/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0024.html
sourcePath: /source/zh/SRA/ecosystemEnable/TensorFlow/kunpengtensorflow_02_0024.html
indexId: 42b438482e5c62e0fdcfd367512e77047b0d3f6c9bdba0a8a26bdd5bb15e5d2872
---
# 源码编译安装

TensorFlow 1.15.5源码编译安装的主要步骤包括安装编译依赖、获取源码、配置相关选项、编译、安装构建好的pip软件包。

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

3. 安装编译依赖。
  1 2 3 4 5 6 pip3 install wheel pip3 install Cython==0.29.14 pip3 install numpy==1.18.5 --no-build-isolation pip3 install h5py==2.8.0 pip3 install protobuf==3.19.0 pip3 install keras_preprocessing==1.1.2

4. 配置git代理。
  1 2 3 git config --global http.sslVerify false git config --global https.sslVerify false git config --global http.proxy "http://用户名:密码@代理IP:代理端口"

5. 若之前加载过环境变量配置，则可跳过该步骤。根据实际安装路径设置bazel和python环境变量。例如：
  1 2 3 export PATH=/path/to/bazel/bazel-0.26.1/output:$PATH export PATH=/usr/local/python3.7.5/bin:$PATH export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:$LD_LIBRARY_PATH

6. 获取TensorFlow 1.15.5源码。
  1 wget https://github.com/tensorflow/tensorflow/archive/refs/tags/v1.15.5.zip --no-check-certificate

7. 解压TensorFlow源码包并进入解压目录。
  1 2 unzip v1.15.5.zip cd tensorflow-1.15.5

8. 执行configure，设置配置选项。
```
./configure
```

configure配置过程步骤如下：

  a. 确认可执行程序python的位置。
    1 Please specify the location of python. [Default is /usr/bin/python]:

    如果python3路径和上述默认相同，直接按“Enter”确认；否则，请输入正确的python3路径。

  b. 确认Python lib库的位置。
    1 2 3 Found possible Python library paths: /usr/local/python3.7.5/lib/python3.7/site-packages Please input the desired Python library path to use. Default is [/usr/local/python3.7.5/lib/python3.7/site-packages]

    如果python3路径和上述默认相同，直接按“Enter”确认；否则，请输入正确的Python lib库路径。

  c. 确认是否配置XLA JIT特性，本文选择“n”。
    1 Do you wish to build TensorFlow with XLA JIT support? [Y/n]:n

  d. 确认是否配置OpenCL SYCL特性，本文选择“N”。
    1 Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: N

  e. 确认是否配置ROCm特性，本文选择“N”。
    1 Do you wish to build TensorFlow with ROCm support? [y/N]: N

  f. 确认是否配置CUDA特性，本文选择“N”。
    1 Do you wish to build TensorFlow with CUDA support? [y/N]: N

  g. 确认是否配置clang，本文选择“N”。
    1 Do you wish to download a fresh release of clang? (Experimental) [y/N]: N

  h. 确认是否配置MPI，本文选择“N”。
    1 Do you wish to build TensorFlow with MPI support? [y/N]: N

  i. 配置编译选项，本文按默认设置，直接按“Enter”确认。
    1 Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]:

  j. 在构建Android应用程序时，确认是否设置工作空间，本文选择“N”。
    1 "Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: N

9. 编译TensorFlow。
  1 bazel build --config=v1 --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" //tensorflow/tools/pip_package:build_pip_package

  从源代码构建TensorFlow会消耗大量内存资源，如果您的系统受内存限制，编译命令追加--local_ram_resources={内存大小} ，例如：--local_ram_resources=2048表示将内存开销限制为2048MB。 编译过程中可能会提示证书校验失败的问题，提示信息为“unable to find valid certification path to requested target”，解决办法请参见编译TensorFlow 1.15.5时提示证书校验失败的解决办法。 编译过程中可能会提示依赖组件hwloc编译失败的问题，提示关键信息为“external/hwloc/hwloc/topology.c:45:10: fatal error: sys/sysctl.h: No such file or directory”，解决办法请参见编译TensorFlow 1.15.5时依赖组件hwloc编译失败的解决办法。 编译过程中可能会提示依赖组件grpc编译失败的问题，提示关键信息为“external/grpc/src/core/lib/gpr/log_linux.cc:43:13: error: ambiguating new declaration of 'long int gettid()'”，解决办法请参见编译TensorFlow 1.15.5时依赖组件grpc编译失败的解决办法。

10. 构建pip软件包。
  1 ./bazel-bin/tensorflow/tools/pip_package/build_pip_package ./output

  在“output”目录会生成“tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl”软件包。

11. 安装TensorFlow pip软件包。
  1 2 cd output pip3 install tensorflow-1.15.5-cp37-cp37m-linux_aarch64.whl
