ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Indeed in bag.py Cryptodome is referenced (permalink to the latest melodic-devel at the time):

from Cryptodome.Cipher import AES

Unfamilliar with this package, I'm curious where the dependency on this pkg is defined.

Barebone Ubuntu distro, or default python? Looks like no.

$ docker run -it ubuntu:bionic bash
# apt update && apt install python
# python -c "import Cryptodome"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named Cryptodome

Somewhere in base ROS? Looks like it.

$ docker run -it ros:melodic-ros-base bash
root@ccde9d6e77bd:/# python -c "import Cryptodome"
root@ccde9d6e77bd:/# 
# apt-cache policy python-pycryptodome
python-pycryptodome:
  Installed: 3.4.7-1ubuntu1
  Candidate: 3.4.7-1ubuntu1
  Version table:
 *** 3.4.7-1ubuntu1 100
        100 /var/lib/dpkg/status

Indeed rosbag package itself defines it.

So, if you followed any standard way to (build/)install rosbag (and others), the missing package should have been beautifully installed automatically (by rosdep install that references to package.xml of each package and installs missing packages). I can only recommend that you review your installation steps. But, b/c there are other people who are stuck with the same error msg e.g. #q331160, I'd say there _may_ be a corner case that the installtion steps haven't captured yet (In that case we should fix. Please consider updating your description, or open a ticket. For a starter I'd say ros_comm is ok).