Rosanswers logo

How looks the structure and the content of a plain ROS2 library level package? The intent of the package is to encapsulate functionality implemented in Python which can be imported into other ROS2 packages.

  • no ROS2 dependency (despite for building, linting, etc.)
  • no scripts
  • no nodes
  • no docs
  • no tests just plain ament linter checks (copyright, flake8, pep257)

EDIT: Draft on GitHub.

Originally posted by thinwybk on ROS Answers with karma: 468 on 2017-11-04

Post score: 0

Original comments

Comment by thinwybk on 2018-08-18:
Will be obsolete as soon as https://github.com/ros2/ros2cli/issues/125 is implemented.

Comment by thinwybk on 2018-10-09:
How are Python package dependencies managed in ROS2? I could just find an example where an install_requires dependency is assumed to be pre-installed via setup.py install or PyPi.

Comment by thinwybk on 2018-10-21:
In this case there shouldn't be any limitations w.r.t. Python packaging (Pipfile, etc.) right?

Comment by William on 2018-10-22:
I don't think so. So long as the alternative mechanism (pipfile or requirements.txt or whatever) will avoid installing things that are already installed by the system package manager (like apt).


1 Answer 1


Rosanswers logo

It will work just like any setup.py file works. However, if you want to release it in our infrastructure you'll want to duplicate the entries in the package.xml and ensure there are rosdep rules for it. This would allow for dependencies to be fetch from something other than pip, like apt.

Originally posted by William with karma: 17335 on 2018-10-09

This answer was ACCEPTED on the original site

Post score: 1


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.