在ROS 2中使用Python包
**目标:**解释如何与ROS 2生态系统中的其他Python包进行互操作。
注解
请注意,如果您打算使用预编译的二进制文件(无论是``deb``文件还是“fat”二进制发行版),Python解释器必须与用于构建原始二进制文件的解释器相匹配。如果您打算使用类似于``virtualenv``或``pipenv``的工具,请确保使用系统解释器。如果您使用类似于``conda``的工具,很可能解释器与系统解释器不匹配,且与ROS 2的二进制文件不兼容。
通过``rosdep``进行安装
包含第三方Python包的最快方法是使用它们对应的``rosdep``键(如果可用)。可以通过以下方式检查``rosdep``键:
https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml
https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml
这些``rosdep``键可以添加到您的``package.xml``文件中,指示构建系统您的软件包(以及依赖软件包)依赖于这些键。在新的工作空间中,您还可以使用以下命令快速安装所有rosdep键:
rosdep install -yr ./path/to/your/workspace
如果您感兴趣的软件包目前没有相应的``rosdep``键,可以按照`rosdep键贡献指南`_进行添加。
要了解更多关于``rosdep``工具及其工作原理的信息,请参阅`rosdep文档`_。
通过软件包管理器安装
如果您不想创建一个 rosdep 键,但是该软件包在系统的软件包管理器中可用(例如 apt
),您可以通过以下方式安装和使用该软件包:
sudo apt install python3-serial
如果该软件包在 Python Package Index (PyPI) 上可用,并且您想要在系统上进行全局安装:
python3 -m pip install -U pyserial
如果该软件包在 PyPI 上可用,并且您想要在本地安装到您的用户目录下:
python3 -m pip install -U --user pyserial
通过虚拟环境安装
首先,创建一个 Colcon 工作空间:
mkdir -p ~/colcon_venv/src
cd ~/colcon_venv/
然后设置您的虚拟环境:
# Make a virtual env and activate it
virtualenv -p python3 ./venv
source ./venv/bin/activate
# Make sure that colcon doesn’t try to build the venv
touch ./venv/COLCON_IGNORE
接下来,在您的虚拟环境中安装所需的 Python 包:
python3 -m pip install gtsam pyserial… etc
现在你可以构建你的工作空间并运行依赖于虚拟环境中安装的包的 Python 节点。
# Source Humble and build
source /opt/ros/humble/setup.bash
colcon build
注解
如果你想使用 Bloom 发布你的包,你应该将你所需的包添加到 rosdep
中,请参阅 rosdep 关键字贡献指南。