在 ROS 2 中使用 Python 包
目标:解释如何与 ROS 2 生态系统中的其他 Python 包进行互操作。
Note
需要注意的是,如果您打算使用预打包的二进制文件(“deb”文件或二进制存档分发版),则 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 软件包索引 (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 Rolling and build
source /opt/ros/rolling/setup.bash
colcon build
Note
如果您想使用 Bloom 发布您的软件包,您应该将您需要的软件包添加到“rosdep”,请参阅“rosdep 关键贡献指南”。