ros / dynamic_reconfigure

BSD 3-Clause "New" or "Revised" License
47 stars 112 forks source link

parameter_generator.py", line 189: string.join() method no more available in python3.7 (ros noetic) #170

Closed Luke1962 closed 1 year ago

Luke1962 commented 3 years ago

Under Armbian Buster with python3.7 and ROS Noetic , during catkin_make of packages using dynamic_reconfigure, the following error occurs:

Scanning dependencies of target _vision_msgs_generate_messages_check_deps_Classification3D
Generating reconfiguration files for Camera in rm_usbcam
Error building srv Camera.srv
Traceback (most recent call last):
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 326, in generate
    self.generatecpp()
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 521, in generatecpp
    write_params(self.group)
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 493, in write_params
    paramdescr.append(Template("${configname}Config::GroupDescription<${configname}Config::${class}, ${configname}Config> ${name}(\"${name}\", \"${type}\", ${parent}, ${id}, ${cstate}, &${configname}Config::${lower});").safe_substitute(group.to_dict(), configname=self.name))
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 208, in to_dict
    'groups': [group.to_dict() for group in self.groups],
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 208, in <listcomp>
    'groups': [group.to_dict() for group in self.groups],
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 211, in to_dict
    'class': self.get_class(),
  File "/opt/ros/noetic/lib/python3/dist-packages/dynamic_reconfigure/parameter_generator.py", line 189, in get_class
    return string.join(cls, "::")
AttributeError: module 'string' has no attribute 'join'

According to StackOverflow answer, It could be removed replacing string.join(cls, "::") with "::".join(cls)

SubaruArai commented 1 year ago

Can confirm that this has been fixed. Can someone close this?