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 package 。 ament_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
旁边也可以有一个 src
或 include
目录,其中包含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]