编译安装#
前提条件#
编译安装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。
调整编译类型
默认情况下,常规安装编译出的C++层二进制文件为
Release类型。若需进行调试,可通过pip的--config-setting参数指定不同的编译类型:# 通过--config-setting参数指定C++层二进制编译为Debug类型 python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-build-type=Debug'
开启C++编译器详细输出模式
# 额外开启C++编译器详细输出模式(便于定位C++编译问题) python3 -m pip install . --verbose --config-setting=--build-option='build_ext --cmake-build-type=Debug --cmake-verbose'
指定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。