编译安装#

前提条件#

编译安装PyPTO项目前,请先参考环境准备完成基础环境搭建。

通过源码编译安装(推荐)#

环境自检#

如果您的开发环境可以正常访问cann-src-third-party,PyPTO编译所需的第三方开源软件将在编译过程中自动下载及编译。 如果无法访问,请参考环境准备中“准备第三方开源软件源码包”的相关章节完成源码包准备,并在编译前设置如下环境变量:

export PYPTO_THIRD_PARTY_PATH=<path-to-thirdparty>

常规安装#

此方式适用于生产环境或代码稳定后使用。编译安装后,对Python源码的修改不会体现到已安装的’pypto’包中。对应命令如下:

# (可选)若开发环境无法访问cann-src-third-party,需设置
export PYPTO_THIRD_PARTY_PATH=<path-to-thirdparty>

# 执行编译及安装
python3 -m pip install . --verbose

参数说明--verbose:输出安装流程的基础详细信息(如下载的包版本、安装路径、依赖解析结果等)。

高级配置

以下功能依赖pip支持--config-setting参数,如需使用,请确保pip版本不低于22.1

  1. 调整编译类型

    默认情况下,常规安装编译出的C++层二进制文件为Release类型。若需进行调试,可通过pip--config-setting参数指定不同的编译类型:

    # 通过--config-setting参数指定C++层二进制编译为Debug类型
    python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-build-type=Debug'
    
  2. 开启C++编译器详细输出模式

    # 额外开启C++编译器详细输出模式(便于定位C++编译问题)
    python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-build-type=Debug --cmake-verbose'
    
  3. 指定CMake Generator类型

    # 指定CMake Generator类型(Ninja,Ninja需提前安装)
    python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-generator=Ninja'
    
    # 指定CMake Generator类型(Unix Makefiles)
    python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-generator="Unix Makefiles"'
    

可编辑安装#

此方式适用于开发调试阶段。该模式会在site-packages目录中创建指向本地源码的软链接,对Python源码的修改会即时生效,无需重新安装。对应命令如下:

# (可选)设置PYPTO_THIRD_PARTY_PATH,若开发环境无法访问cann-src-third-party
export PYPTO_THIRD_PARTY_PATH=<path-to-thirdparty>

# 执行编译及安装(可编辑模式)
python3 -m pip install -e . --verbose

参数说明

  • -e:即--editable的简写形式,标识采用可编辑安装模式;

  • --verbose:会输出安装流程的基础详细信息(如下载的包版本,安装路径,依赖解析结果等);

高级配置

PyPTO使用setuptools作为其编译打包工具。需要注意的是,当前版本的setuptools尚不支持直接接收pip命令通过--config-setting参数传递的配置。 如需指定特定的C++编译选项,您需要将相关配置预先设置在PYPTO_BUILD_EXT_ARGS环境变量中。该环境变量的值将在编译过程(setup.py)中被自动识别并使用。

以下示例演示了如何配置环境变量以编译Debug版本的C++二进制文件并开启编译器的详细输出模式,然后进行安装。

# 设置编译参数:指定编译类型为Debug,并开启编译器详细输出(便于诊断问题)
export PYPTO_BUILD_EXT_ARGS='--cmake-build-type=Debug --cmake-verbose'

# 其他配置方式参考:指定编译类型为Debug,并开启编译器详细输出(便于诊断问题),指定CMake Generator为Unix Makefiles
# export PYPTO_BUILD_EXT_ARGS='--cmake-build-type=Debug --cmake-verbose --cmake-generator="Unix Makefiles"'

# 执行编译及安装(可编辑模式)
python3 -m pip install -e . --verbose

通过PyPI安装#

PyPTO已发布至PyPI,若不涉及对PyPTO源码的修改,可以直接使用pip命令安装:

# 从PyPI源下载并安装
python3 -m pip install pypto

通过Docker镜像安装#

为了方便快速搭建环境,同样提供已完成PyPTO运行环境搭建的Docker镜像,详细使用请参考docker_and_install