ImportError when running catkin_make_isolated
I'm following the source installation on Debian Stretch on an armel platform. When I come to the final step of running catkin_make_isolated, I get the following error:
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
Traceback (most recent call last):
File "./src/catkin/bin/catkin_make_isolated", line 12, in <module>
from catkin.builder import build_workspace_isolated
File "./src/catkin/bin/../python/catkin/builder.py", line 66, in <module>
from catkin_pkg.terminal_color import ansi, disable_ANSI_colors, fmt, sanitize
ImportError: No module named terminal_color
It seems this is due to a version mismatch, but I'm not sure where exactly. I'm running this in a Docker file, so it should be very reproducible:
FROM ev3dev/ev3dev-stretch-ev3-generic
RUN echo "robot ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
RUN apt-get install --yes --no-install-recommends python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential
RUN rosdep init
USER robot
RUN rosdep update
RUN mkdir /home/robot/ros_catkin_ws
WORKDIR /home/robot/ros_catkin_ws
RUN rosinstall_generator robot --rosdistro melodic --deps --exclude roslisp --tar > melodic-robot.rosinstall
RUN wstool init -j8 src melodic-robot.rosinstall
RUN rosdep install --os=debian:stretch --from-paths src --ignore-src --rosdistro melodic -y
RUN ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
I can't check (as I don't have an arm board to run this on), but check that
python
does not point topython3
inev3dev/ev3dev-stretch-ev3-generic
. Afaik all ROS Python pkgs are released for Python 2. Ifterminal_color
has been installed for Python 3, Python 2 will not find it.Debian gives me a really old version of
catkin_pkg
. I did apip install -U catkin_pkg
and that soled that particular issue. But going full pip instead of deb, get me issues with roslisp that is trying to install packages that don't exist. How can I tell it to exclude that?