mod_wsgi icon indicating copy to clipboard operation
mod_wsgi copied to clipboard

ImportError: libmoveit_py_bindings_tools.so.1.1.9: cannot open shared object file: No such file or directory

Open elfinsirius opened this issue 3 years ago • 16 comments

I have a computer connected to a robot acting as a server with Apache2. The user on the site creates a program in Blockly, the code of this program is executed on the server computer. Everything was fine until I added MoveGroupCommander, because an error now appears and nothing is working.

Traceback (most recent call last): File "/var/www/robot/static/code.py", line 14, in from robot_api import Robot File "/var/www/robot/static/robot_api.py", line 8, in from moveit_commander.move_group import MoveGroupCommander File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/init.py", line 2, in from .roscpp_initializer import * File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/roscpp_initializer.py", line 35, in from moveit_ros_planning_interface import _moveit_roscpp_initializer ImportError: libmoveit_py_bindings_tools.so.1.1.9: cannot open shared object file: No such file or directory

How can i fix that?

elfinsirius avatar Sep 05 '22 13:09 elfinsirius

Does the file:

libmoveit_py_bindings_tools.so.1.1.9

exist anywhere on your system?

Rather brute force way of find out, but what files are found when you run:

find / -name 'libmoveit_py_bindings_tools.so*' -print

Ignore any errors about not being able to open special devices or unreadable directories etc.

GrahamDumpleton avatar Sep 05 '22 21:09 GrahamDumpleton

Thank you for your answer. Yes, file exist. Here is the output of find / -name 'libmoveit_py_bindings_tools.so*' -print /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so.1.1.9 /usr/lib/apache2/modules/libmoveit_py_bindings_tools.so.1.1.9 find: ‘/run/user/1000/doc’: Permission denied find: ‘/run/user/1000/gvfs’: Permission denied

elfinsirius avatar Sep 09 '22 08:09 elfinsirius

It shouldn't exist in /usr/lib/apache2/modules. Did you put it there?

Is /opt/ros/noetic your Python virtual environment or where your actual Python installation is located?

GrahamDumpleton avatar Sep 09 '22 09:09 GrahamDumpleton

Yes, file exist in /usr/lib/apache2/modules How can i find out the answer for your second question?

elfinsirius avatar Sep 09 '22 09:09 elfinsirius

When you run the Python version you are using, from the interpreter what do you get for:

import sys
print(sys.prefix)

Where did /opt/ros and /opt/ros/noetic come from?

Are they some special package you have installed?

GrahamDumpleton avatar Sep 09 '22 09:09 GrahamDumpleton

When i run this import sys print(sys.prefix) i get /usr /opt/ros was created when i installed ROS to send messages to my robot.

elfinsirius avatar Sep 09 '22 10:09 elfinsirius

The basic problem is that neither the C extension which is part of the moveit module, nor the Python shared library, embed the information about the directory containing the libmoveit_py_bindings_tools.so.1.1.9 file. Instead it is relying on the library directory location being compiled into the python executable. When using Apache though and embedding Python, it doesn't use the python executable and instead links to the Python shared library and so it cannot be found.

The only solutions would be to set the appropriate environment variable for Apache telling it where the directory location is, which is probably not going to be easy to do except by changing system startup scripts for Apache, or by cheating and force loading the libmoveit_py_bindings_tools.so.1.1.9 into Apache.

To do the latter, include in the Apache configuration file directive:

LoadFile /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so.1.1.9

This should be at global scope, outside of any Apache VirtualHost directive.

See if that solves the problem.

GrahamDumpleton avatar Sep 09 '22 10:09 GrahamDumpleton

I should add this line to the end of the file apache2.conf?

elfinsirius avatar Sep 09 '22 10:09 elfinsirius

Location probably doesn't matter, but better to place it where the LoadModule lines are. You may even need to ensure it is placed before the LoadModule line for mod_wsgi.

GrahamDumpleton avatar Sep 09 '22 10:09 GrahamDumpleton

I got this Cannot load /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so.1.1.9 into server: libroscpp.so: cannot open shared object file: : No such file or directory

elfinsirius avatar Sep 09 '22 11:09 elfinsirius

The find command you ran previously said that that was where the file existed. If Apache cannot load it, the issue may be ownership permissions. What do you get for:

ls -lasd /opt/ros/noetic/lib
ls -las /opt/ros/noetic/lib/libmoveit*
ls -las /usr/lib/apache2/modules/libmoveit*

GrahamDumpleton avatar Sep 09 '22 20:09 GrahamDumpleton

Sorry to keep you waiting Here is the output ls -lasd /opt/ros/noetic/lib 40 drwxr-xr-x 117 root root 36864 сен 1 12:21 /opt/ros/noetic/lib

ls -las /opt/ros/noetic/lib/libmoveit*
0 lrwxrwxrwx 1 root     root          40 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_background_processing.so -> libmoveit_background_processing.so.1.1.9
 180 -rw-r--r-- 1 root     root      183592 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_background_processing.so.1.1.9
   0 lrwxrwxrwx 1 root     root          44 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_cached_ik_kinematics_base.so -> libmoveit_cached_ik_kinematics_base.so.1.1.9
 132 -rw-r--r-- 1 root     root      134560 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_cached_ik_kinematics_base.so.1.1.9
   0 lrwxrwxrwx 1 root     root          46 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_cached_ik_kinematics_plugin.so -> libmoveit_cached_ik_kinematics_plugin.so.1.1.9
 100 -rw-r--r-- 1 root     root      101536 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_cached_ik_kinematics_plugin.so.1.1.9
   0 lrwxrwxrwx 1 root     root          42 авг 15 18:23 /opt/ros/noetic/lib/libmoveit_chomp_optimizer_adapter.so -> libmoveit_chomp_optimizer_adapter.so.1.1.9
  96 -rw-r--r-- 1 root     root       97584 авг 15 18:23 /opt/ros/noetic/lib/libmoveit_chomp_optimizer_adapter.so.1.1.9
   0 lrwxrwxrwx 1 root     root          45 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection_bullet.so -> libmoveit_collision_detection_bullet.so.1.1.9
 280 -rw-r--r-- 1 root     root      283048 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection_bullet.so.1.1.9
   0 lrwxrwxrwx 1 root     root          42 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection_fcl.so -> libmoveit_collision_detection_fcl.so.1.1.9
 240 -rw-r--r-- 1 root     root      242176 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection_fcl.so.1.1.9
   0 lrwxrwxrwx 1 root     root          38 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection.so -> libmoveit_collision_detection.so.1.1.9
 468 -rw-r--r-- 1 root     root      476808 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_detection.so.1.1.9
   0 lrwxrwxrwx 1 root     root          43 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_distance_field.so -> libmoveit_collision_distance_field.so.1.1.9
 416 -rw-r--r-- 1 root     root      423496 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_collision_distance_field.so.1.1.9
   0 lrwxrwxrwx 1 root     root          42 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_collision_plugin_loader.so -> libmoveit_collision_plugin_loader.so.1.1.9
  40 -rw-r--r-- 1 root     root       39632 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_collision_plugin_loader.so.1.1.9
   0 lrwxrwxrwx 1 root     root          52 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_common_planning_interface_objects.so -> libmoveit_common_planning_interface_objects.so.1.1.9
 128 -rw-r--r-- 1 root     root      130048 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_common_planning_interface_objects.so.1.1.9
   0 lrwxrwxrwx 1 root     root          52 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_constraint_sampler_manager_loader.so -> libmoveit_constraint_sampler_manager_loader.so.1.1.9
 252 -rw-r--r-- 1 root     root      254224 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_constraint_sampler_manager_loader.so.1.1.9
   0 lrwxrwxrwx 1 root     root          38 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_constraint_samplers.so -> libmoveit_constraint_samplers.so.1.1.9
 268 -rw-r--r-- 1 root     root      270936 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_constraint_samplers.so.1.1.9
   0 lrwxrwxrwx 1 root     root          22 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_cpp.so -> libmoveit_cpp.so.1.1.9
 228 -rw-r--r-- 1 root     root      229816 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_cpp.so.1.1.9
   0 lrwxrwxrwx 1 root     root          59 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_default_planning_request_adapter_plugins.so -> libmoveit_default_planning_request_adapter_plugins.so.1.1.9
 260 -rw-r--r-- 1 root     root      262280 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_default_planning_request_adapter_plugins.so.1.1.9
   0 lrwxrwxrwx 1 root     root          51 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_image_octomap_updater_core.so -> libmoveit_depth_image_octomap_updater_core.so.1.1.9
 184 -rw-r--r-- 1 root     root      188304 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_image_octomap_updater_core.so.1.1.9
   0 lrwxrwxrwx 1 root     root          46 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_image_octomap_updater.so -> libmoveit_depth_image_octomap_updater.so.1.1.9
  88 -rw-r--r-- 1 root     root       88976 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_image_octomap_updater.so.1.1.9
   0 lrwxrwxrwx 1 root     root          36 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_self_filter.so -> libmoveit_depth_self_filter.so.1.1.9
 164 -rw-r--r-- 1 root     root      167592 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_depth_self_filter.so.1.1.9
   0 lrwxrwxrwx 1 root     root          33 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_distance_field.so -> libmoveit_distance_field.so.1.1.9
 232 -rw-r--r-- 1 root     root      237368 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_distance_field.so.1.1.9
   0 lrwxrwxrwx 1 root     root          34 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_dynamics_solver.so -> libmoveit_dynamics_solver.so.1.1.9
  76 -rw-r--r-- 1 root     root       76976 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_dynamics_solver.so.1.1.9
   0 lrwxrwxrwx 1 root     root          29 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_exceptions.so -> libmoveit_exceptions.so.1.1.9
  20 -rw-r--r-- 1 root     root       18848 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_exceptions.so.1.1.9
   0 lrwxrwxrwx 1 root     root          42 авг 15 18:37 /opt/ros/noetic/lib/libmoveit_fake_controller_manager.so -> libmoveit_fake_controller_manager.so.1.1.9
 244 -rw-r--r-- 1 root     root      246056 авг 15 18:37 /opt/ros/noetic/lib/libmoveit_fake_controller_manager.so.1.1.9
   0 lrwxrwxrwx 1 root     root          40 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_kdl_kinematics_plugin.so -> libmoveit_kdl_kinematics_plugin.so.1.1.9
 256 -rw-r--r-- 1 root     root      258528 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_kdl_kinematics_plugin.so.1.1.9
   0 lrwxrwxrwx 1 root     root          40 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematic_constraints.so -> libmoveit_kinematic_constraints.so.1.1.9
 256 -rw-r--r-- 1 root     root      258648 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematic_constraints.so.1.1.9
   0 lrwxrwxrwx 1 root     root          34 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematics_base.so -> libmoveit_kinematics_base.so.1.1.9
  64 -rw-r--r-- 1 root     root       64352 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematics_base.so.1.1.9
   0 lrwxrwxrwx 1 root     root          37 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematics_metrics.so -> libmoveit_kinematics_metrics.so.1.1.9
 180 -rw-r--r-- 1 root     root      183584 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_kinematics_metrics.so.1.1.9
   0 lrwxrwxrwx 1 root     root          43 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_kinematics_plugin_loader.so -> libmoveit_kinematics_plugin_loader.so.1.1.9
 320 -rw-r--r-- 1 root     root      324672 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_kinematics_plugin_loader.so.1.1.9
   0 lrwxrwxrwx 1 root     root          42 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_lazy_free_space_updater.so -> libmoveit_lazy_free_space_updater.so.1.1.9
 180 -rw-r--r-- 1 root     root      183920 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_lazy_free_space_updater.so.1.1.9
   0 lrwxrwxrwx 1 root     root          40 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_lma_kinematics_plugin.so -> libmoveit_lma_kinematics_plugin.so.1.1.9
 128 -rw-r--r-- 1 root     root      130688 авг 15 18:40 /opt/ros/noetic/lib/libmoveit_lma_kinematics_plugin.so.1.1.9
   0 lrwxrwxrwx 1 root     root          30 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_mesh_filter.so -> libmoveit_mesh_filter.so.1.1.9
 120 -rw-r--r-- 1 root     root      122488 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_mesh_filter.so.1.1.9
   0 lrwxrwxrwx 1 root     root          51 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_motion_planning_rviz_plugin_core.so -> libmoveit_motion_planning_rviz_plugin_core.so.1.1.9
1632 -rw-r--r-- 1 root     root     1669992 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_motion_planning_rviz_plugin_core.so.1.1.9
   0 lrwxrwxrwx 1 root     root          46 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_motion_planning_rviz_plugin.so -> libmoveit_motion_planning_rviz_plugin.so.1.1.9
  88 -rw-r--r-- 1 root     root       89056 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_motion_planning_rviz_plugin.so.1.1.9
   0 lrwxrwxrwx 1 root     root          47 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_move_group_capabilities_base.so -> libmoveit_move_group_capabilities_base.so.1.1.9
 164 -rw-r--r-- 1 root     root      167336 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_move_group_capabilities_base.so.1.1.9
   0 lrwxrwxrwx 1 root     root          50 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_move_group_default_capabilities.so -> libmoveit_move_group_default_capabilities.so.1.1.9
1256 -rw-r--r-- 1 root     root     1283336 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_move_group_default_capabilities.so.1.1.9
   0 lrwxrwxrwx 1 root     root          39 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_move_group_interface.so -> libmoveit_move_group_interface.so.1.1.9
1620 -rw-r--r-- 1 root     root     1657592 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_move_group_interface.so.1.1.9
   0 lrwxrwxrwx 1 root     root          51 авг 15 18:55 /opt/ros/noetic/lib/libmoveit_move_group_pick_place_capability.so -> libmoveit_move_group_pick_place_capability.so.1.1.9
 768 -rw-r--r-- 1 root     root      785848 авг 15 18:55 /opt/ros/noetic/lib/libmoveit_move_group_pick_place_capability.so.1.1.9
   0 lrwxrwxrwx 1 root     root          33 авг 15 18:41 /opt/ros/noetic/lib/libmoveit_ompl_interface.so -> libmoveit_ompl_interface.so.1.1.9
1332 -rw-r--r-- 1 root     root     1362504 авг 15 18:41 /opt/ros/noetic/lib/libmoveit_ompl_interface.so.1.1.9
   0 lrwxrwxrwx 1 root     root          38 авг 15 18:41 /opt/ros/noetic/lib/libmoveit_ompl_planner_plugin.so -> libmoveit_ompl_planner_plugin.so.1.1.9
 516 -rw-r--r-- 1 root     root      525160 авг 15 18:41 /opt/ros/noetic/lib/libmoveit_ompl_planner_plugin.so.1.1.9
 176 -rw-r--r-- 1 root     root      180224 авг 15 18:38 /opt/ros/noetic/lib/libmoveit_opw_kinematics_plugin.so
   0 lrwxrwxrwx 1 root     root          37 авг 15 18:55 /opt/ros/noetic/lib/libmoveit_pick_place_planner.so -> libmoveit_pick_place_planner.so.1.1.9
 652 -rw-r--r-- 1 root     root      665656 авг 15 18:55 /opt/ros/noetic/lib/libmoveit_pick_place_planner.so.1.1.9
   0 lrwxrwxrwx 1 root     root          33 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_plan_execution.so -> libmoveit_plan_execution.so.1.1.9
 568 -rw-r--r-- 1 root     root      580024 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_plan_execution.so.1.1.9
   0 lrwxrwxrwx 1 root     root          33 авг 24 22:39 /opt/ros/noetic/lib/libmoveit_planners_chomp.so -> libmoveit_planners_chomp.so.1.1.9
  56 -rw-r--r-- 1 root     root       56112 авг 24 22:39 /opt/ros/noetic/lib/libmoveit_planners_chomp.so.1.1.9
   0 lrwxrwxrwx 1 root     root          37 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_interface.so -> libmoveit_planning_interface.so.1.1.9
 152 -rw-r--r-- 1 root     root      154912 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_interface.so.1.1.9
   0 lrwxrwxrwx 1 root     root          36 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_planning_pipeline.so -> libmoveit_planning_pipeline.so.1.1.9
 440 -rw-r--r-- 1 root     root      448104 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_planning_pipeline.so.1.1.9
   0 lrwxrwxrwx 1 root     root          43 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_request_adapter.so -> libmoveit_planning_request_adapter.so.1.1.9
  80 -rw-r--r-- 1 root     root       80664 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_request_adapter.so.1.1.9
   0 lrwxrwxrwx 1 root     root          43 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_planning_scene_interface.so -> libmoveit_planning_scene_interface.so.1.1.9
 200 -rw-r--r-- 1 root     root      204664 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_planning_scene_interface.so.1.1.9
   0 lrwxrwxrwx 1 root     root          41 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_planning_scene_monitor.so -> libmoveit_planning_scene_monitor.so.1.1.9
 824 -rw-r--r-- 1 root     root      843720 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_planning_scene_monitor.so.1.1.9
   0 lrwxrwxrwx 1 root     root          50 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_planning_scene_rviz_plugin_core.so -> libmoveit_planning_scene_rviz_plugin_core.so.1.1.9
 232 -rw-r--r-- 1 root     root      233648 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_planning_scene_rviz_plugin_core.so.1.1.9
   0 lrwxrwxrwx 1 root     root          45 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_planning_scene_rviz_plugin.so -> libmoveit_planning_scene_rviz_plugin.so.1.1.9
  88 -rw-r--r-- 1 root     root       89056 авг 24 22:40 /opt/ros/noetic/lib/libmoveit_planning_scene_rviz_plugin.so.1.1.9
   0 lrwxrwxrwx 1 root     root          33 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_scene.so -> libmoveit_planning_scene.so.1.1.9
 460 -rw-r--r-- 1 root     root      469520 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_planning_scene.so.1.1.9
   0 lrwxrwxrwx 1 root     root          50 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_pointcloud_octomap_updater_core.so -> libmoveit_pointcloud_octomap_updater_core.so.1.1.9
 372 -rw-r--r-- 1 root     root      377704 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_pointcloud_octomap_updater_core.so.1.1.9
   0 lrwxrwxrwx 1 root     root          45 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_pointcloud_octomap_updater.so -> libmoveit_pointcloud_octomap_updater.so.1.1.9
  88 -rw-r--r-- 1 root     root       88976 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_pointcloud_octomap_updater.so.1.1.9
   0 lrwxrwxrwx 1 root     root          43 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_point_containment_filter.so -> libmoveit_point_containment_filter.so.1.1.9
 100 -rw-r--r-- 1 root     root      101456 авг 15 18:42 /opt/ros/noetic/lib/libmoveit_point_containment_filter.so.1.1.9
   0 lrwxrwxrwx 1 root     root          27 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_profiler.so -> libmoveit_profiler.so.1.1.9
 196 -rw-r--r-- 1 root     root      200160 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_profiler.so.1.1.9
   0 lrwxrwxrwx 1 root     root          36 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so -> libmoveit_py_bindings_tools.so.1.1.9
 140 -rw-r--r-- 1 www-data www-data  142568 авг 24 22:31 /opt/ros/noetic/lib/libmoveit_py_bindings_tools.so.1.1.9
   0 lrwxrwxrwx 1 root     root          31 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_python_tools.so -> libmoveit_python_tools.so.1.1.9
  92 -rw-r--r-- 1 root     root       93520 авг 15 17:53 /opt/ros/noetic/lib/libmoveit_python_tools.so.1.1.9
   0 lrwxrwxrwx 1 root     root          29 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_rdf_loader.so -> libmoveit_rdf_loader.so.1.1.9
 120 -rw-r--r-- 1 root     root      122320 авг 15 18:20 /opt/ros/noetic/lib/libmoveit_rdf_loader.so.1.1.9
ls -las /usr/lib/apache2/modules/libmoveit*
140 -rw-r--r-- 1 root root 142568 сен 12 13:37 /usr/lib/apache2/modules/libmoveit_py_bindings_tools.so
140 -rw-r--r-- 1 root root 142568 сен 12 13:37 /usr/lib/apache2/modules/libmoveit_py_bindings_tools.so.1.1.9

elfinsirius avatar Sep 12 '22 10:09 elfinsirius

Where is the file libroscpp.so located?

GrahamDumpleton avatar Sep 12 '22 10:09 GrahamDumpleton

And to use any of this from normal command line, do they by chance tell you to set:

LD_LIBRARY_PATH=/opt/ros/noetic/lib

environment variable, of is it already set for users?

GrahamDumpleton avatar Sep 12 '22 10:09 GrahamDumpleton

sudo find / -name 'libroscpp.so' -print /opt/ros/noetic/lib/libroscpp.so I've already tried LD_LIBRARY_PATH=/opt/ros/noetic/lib, it didn't help

elfinsirius avatar Sep 12 '22 10:09 elfinsirius

Setting LD_LIBRARY_PATH and exporting it will not help unless it is set in systemd config for Apache, or whatever other startup scripts Apache uses. Trying to do that may be only choice, there are too many different .so libraries to use LoadFile with all of them.

So work out how Apache is started up.

GrahamDumpleton avatar Sep 12 '22 10:09 GrahamDumpleton

Still can`t find the solution :(

elfinsirius avatar Sep 19 '22 12:09 elfinsirius

You didn't explain where you were setting LD_LIBRARY_PATH.

GrahamDumpleton avatar Sep 20 '22 01:09 GrahamDumpleton

I got something. I had to create a link to every library that apache couldn't find with ln -s and error with "No such file or directory" disappear but now there's a new problem Traceback (most recent call last): File "/var/www/robot/static/code.py", line 1, in <module> from robot_api import Robot File "/var/www/robot/static/robot_api.py", line 8, in <module> from moveit_commander.move_group import MoveGroupCommander File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/__init__.py", line 4, in <module> from .move_group import * File "/opt/ros/noetic/lib/python3/dist-packages/moveit_commander/move_group.py", line 52, in <module> from moveit_ros_planning_interface import _moveit_move_group_interface ImportError: /usr/lib/libmoveit_collision_detection_fcl.so.1.1.9: undefined symbol: _ZTIN3fcl17CollisionGeometryIdEE

elfinsirius avatar Sep 21 '22 12:09 elfinsirius

Run nm on all the shared libraries and see if you can work out which defines it.

Rather than use symlinks, the easier approach may have been to add the directory to standard search path for libraries for the whole system using ldconfig configuration files.

  • https://www.thegeekdiary.com/how-to-use-ldconfig-command-in-linux/

Would just need to make sure that there are no libraries in there which may clash with system libraries.

GrahamDumpleton avatar Sep 21 '22 20:09 GrahamDumpleton

$ nm libmoveit_collision_detection_fcl.so.1.1.9 nm: libmoveit_collision_detection_fcl.so.1.1.9: no symbols

elfinsirius avatar Sep 22 '22 07:09 elfinsirius

Not quite what I meant. Run:

for lib in lib*.so; do
  echo "CHECKING $lib"
  nm $lib | grep _ZTIN3fcl17CollisionGeometryIdEE
done

So check all libraries.

If however the libraries have been stripped of all symbols that may not work, which is somewhat confusing since for shared libraries to work symbols must be present.

GrahamDumpleton avatar Sep 22 '22 07:09 GrahamDumpleton

CHECKING libactionlib.so nm: libactionlib.so: no symbols CHECKING libarmadillo.so nm: libarmadillo.so: no symbols CHECKING libclass_loader.so nm: libclass_loader.so: no symbols CHECKING libcpp_common.so nm: libcpp_common.so: no symbols CHECKING libdfalt.so nm: libdfalt.so: no symbols CHECKING libdynamic_reconfigure_config_init_mutex.so nm: libdynamic_reconfigure_config_init_mutex.so: no symbols CHECKING libeigenpy.so nm: libeigenpy.so: no symbols CHECKING libgdal.so nm: libgdal.so: no symbols CHECKING libmfhdfalt.so nm: libmfhdfalt.so: no symbols CHECKING libmoveit_collision_detection_fcl.so nm: libmoveit_collision_detection_fcl.so: no symbols CHECKING libnimCodecs.so nm: libnimCodecs.so: no symbols CHECKING libnimMockNodes.so nm: libnimMockNodes.so: no symbols CHECKING libnimRecorder.so nm: libnimRecorder.so: no symbols CHECKING libogdi.so nm: libogdi.so: no symbols CHECKING libOpenNI2.so nm: libOpenNI2.so: no symbols CHECKING libOpenNI.jni.so nm: libOpenNI.jni.so: no symbols CHECKING libOpenNI.so nm: libOpenNI.so: no symbols CHECKING liborocos-kdl.so nm: liborocos-kdl.so: no symbols CHECKING libqwt-qt5.so nm: libqwt-qt5.so: no symbols CHECKING librandom_numbers.so nm: librandom_numbers.so: no symbols CHECKING libresource_retriever.so nm: libresource_retriever.so: no symbols CHECKING librosconsole_backend_interface.so nm: librosconsole_backend_interface.so: no symbols CHECKING librosconsole_bridge.so nm: librosconsole_bridge.so: no symbols CHECKING librosconsole_log4cxx.so nm: librosconsole_log4cxx.so: no symbols CHECKING librosconsole.so nm: librosconsole.so: no symbols CHECKING libroscpp_serialization.so nm: libroscpp_serialization.so: no symbols CHECKING libroscpp.so nm: libroscpp.so: no symbols CHECKING libroslib.so nm: libroslib.so: no symbols CHECKING librospack.so nm: librospack.so: no symbols CHECKING librostime.so nm: librostime.so: no symbols CHECKING libSample-NiSampleModule.so nm: libSample-NiSampleModule.so: no symbols CHECKING libspnav.so nm: libspnav.so: no symbols CHECKING libtf2_ros.so nm: libtf2_ros.so: no symbols CHECKING libtf.so nm: libtf.so: no symbols CHECKING liburdf.so nm: liburdf.so: no symbols CHECKING libvpf.so nm: libvpf.so: no symbols CHECKING libwarehouse_ros.so nm: libwarehouse_ros.so: no symbols CHECKING libxmlrpcpp.so nm: libxmlrpcpp.so: no symbols

elfinsirius avatar Sep 22 '22 07:09 elfinsirius

I can only suggest you try the ldconfig configuration change then to look in that library directory.

Do programs using this stuff outside of Apache/mod_wsgi still work?

GrahamDumpleton avatar Sep 22 '22 07:09 GrahamDumpleton

Ok, i`ll try Yes, outside of Apache everything works fine

elfinsirius avatar Sep 22 '22 07:09 elfinsirius

GrahamDumpleton, thank you so much!!! I changed ldconfid to add all library paths, removed all symlinks and everything worked fine, Thank you for your patience and responsiveness. I think issue can be closed.

elfinsirius avatar Sep 22 '22 08:09 elfinsirius

Hello, I also meet the mistake, could you pls give some detail solvements?

JyyyyyC avatar Nov 19 '22 15:11 JyyyyyC