ament_cmake_python用户文档 [小鱼@5911]

包含Python代码的``ament_cmake_python`` is a package that provides CMake functions for packages of the ament_cmake build类型。有关更多信息,请参见 ament_cmake user documentation[待校准@5912]

注解

在大多数情况下,纯Python包应该使用 ament_python 构建类型。要创建 ament_python 包,请参阅 Creating your first ROS 2 packageament_cmake_python 只应该在不可能的情况下使用,比如混合C/C + + 和Python代码。 [待校准@5913]

基础知识

基本项目大纲 [待校准@5764]

轮廓包调用ed "my_project" 与 ament_cmake 生成类型使用 ament_cmake_python 看起来像: [待校准@5914]

.
└── my_project
    ├── CMakeLists.txt
    ├── package.xml
    └── my_project
        ├── __init__.py
        └── my_script.py

[需手动修复的语法] __init__.py 文件可以为空,但需要 make Python treat the directory containing it as a package 。在 CMakeLists.txt 旁边也可以有一个 srcinclude 目录,其中包含C/C code代码。 [待校准@5915]

使用ament _ cmake_python [待校准@5916]

包装必须在其 package.xml 声明对 ament_cmake_python 的依赖。 [待校准@5917]

<buildtool_depend>ament_cmake_python</buildtool_depend>

The CMakeLists.txt should contain:

find_package(ament_cmake_python REQUIRED)
# ...
ament_python_install_package(${PROJECT_NAME})

[需手动修复的语法] ament_python_install_package() 的参数是包含Python文件的 CMakeLists.txt 旁边的目录的名称。在这种情况下,它是 my_project ,或 “${PROJECT_NAME}”。 [待校准@5919]

然后,另一个正确依赖于 my_project 的Python包可以将其用作普通的Python模块: [待校准@5920]

from my_project.my_script import my_function

假设 my_script.py 包含一个调用ed my_function() 的函数。 [待校准@5921]