使用 Python 包
目标: 说明如何与 ROS 2 生态系统中的其他 Python 包进行互操作。
注意: 需要特别提醒的是,如果打算使用预编译的二进制包(无论是 deb 文件还是二进制归档发行版),Python 解释器必须与构建原始二进制文件时使用的解释器一致。如果打算使用
virtualenv或pipenv之类的工具,请确保使用系统解释器。如果使用conda之类的工具,解释器很可能与系统解释器不匹配,从而与 ROS 2 二进制文件不兼容。
通过 rosdep 安装
Section titled “通过 rosdep 安装”引入第三方 Python 包最快的方式是使用它们对应的 rosdep key(如果可用的话)。rosdep key 可通过以下链接查询:
- https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml
- https://github.com/ros/rosdistro/blob/master/rosdep/python.yaml
这些 rosdep key 可以添加到 package.xml 文件中,以此向构建系统表明你的包(及其依赖包)依赖于这些 key。在一个新的工作空间中,还可以通过以下命令快速安装所有 rosdep key:
$ rosdep install -yr --from-paths ./path/to/your/workspace如果所需的包目前还没有 rosdep key,可以按照 rosdep key 贡献指南 来添加。
要了解更多关于 rosdep 工具及其工作原理的信息,请参阅 rosdep 文档。
通过包管理器安装
Section titled “通过包管理器安装”如果不想创建 rosdep key,但该包在系统包管理器(例如 apt)中可用,也可以通过这种方式安装并使用:
$ sudo apt install python3-serial如果该包在 Python Package Index (PyPI) 上可用,且需要在系统范围内安装:
$ python3 -m pip install -U pyserial如果该包在 PyPI 上可用,且只需安装到当前用户目录:
$ python3 -m pip install -U --user pyserial通过虚拟环境安装
Section titled “通过虚拟环境安装”首先,创建一个 Colcon 工作空间:
$ mkdir -p ~/colcon_venv/src$ cd ~/colcon_venv/然后配置虚拟环境:
$ virtualenv -p python3 ./venv # Make a virtual env and activate it$ source ./venv/bin/activate$ touch ./venv/COLCON_IGNORE # Make sure that colcon does not try to build the venv接下来,在虚拟环境中安装所需的 Python 包:
$ python3 -m pip install gtsam pyserial… etc现在可以构建工作空间,并运行依赖虚拟环境中已安装包的 Python 节点。
$ source /opt/ros/{DISTRO}/setup.bash # Source {DISTRO_TITLE} and build$ colcon build注意: 如果想使用 Bloom 发布包,应将所需的包添加到
rosdep中,请参阅 rosdep key 贡献指南。