ros2 / rclpy

rclpy (ROS Client Library for Python)
Apache License 2.0
284 stars 224 forks source link

no module named 'rclpy._rclpy' #914

Closed Henrycious closed 2 years ago

Henrycious commented 2 years ago

Bug report

Required Info:

Steps to reproduce issue

ros2 launch rosbridge_server rosbridge_websocket.launch.py

Expected behavior

Everything working

Actual behavior

The rclpy lib was not found. I know the error is occurring because different python-versions are used. python3.8 with /opt/ros/foxy/lib/python3.8 python 3.9 with /usr/local/lib/python3.9 (line 12) so the program searches for the file: '_rclpy.cpython-39-x86_64-linux-gnu.so' but i only have the '_rclpy.cpython-38-...' on my computer. unfortunately i don't know how to change the importlib-part from python 3.9 to 3.8 to be compatible. Is there a simple way to change this?

Additional information

Error-Log here:

1 [rosapi_node-2] Traceback (most recent call last):
2 [rosapi_node-2]   File "/home/henry/master_ws/webserver_ws/install/rosapi/lib/rosapi/rosapi_node", line 37, in <module>
3 [rosapi_node-2]     from rclpy.clock import Clock, ClockType
4 [rosapi_node-2]   File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/clock.py", line 17, in <module>
5 [rosapi_node-2]     from rclpy.handle import Handle
6 [rosapi_node-2]   File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/handle.py", line 17, in <module>
7 [rosapi_node-2]     from rclpy.impl.implementation_singleton import rclpy_handle_implementation as _rclpy_handle
8 [rosapi_node-2]   File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/impl/implementation_singleton.py", line 31, in <module>
9 [rosapi_node-2]     rclpy_implementation = _import('._rclpy')
10 [rosapi_node-2]   File "/opt/ros/foxy/lib/python3.8/site-packages/rclpy/impl/__init__.py", line 28, in _import
11 [rosapi_node-2]     return importlib.import_module(name, package='rclpy')
12 [rosapi_node-2]   File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module
13 [rosapi_node-2]     return _bootstrap._gcd_import(name[level:], package, level)
14 [rosapi_node-2] ModuleNotFoundError: No module named 'rclpy._rclpy'
15 [rosapi_node-2] The C extension '/opt/ros/foxy/lib/python3.8/site-packages/rclpy/_rclpy.cpython-39-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://index.ros.org/doc/ros2/Troubleshooting/Installation-Troubleshooting/#import-failing-without-library-present-on-the-system' for possible solutions

further information:

python3 --version

returns Python 3.8.10

pip3 --version

returns pip 22.0.4 from /home/henry/.local/lib/python3.8/site-packages/pip (python 3.8)

python3 -c "import sys; print('\n'.join(sys.path))"

returns: /home/henry/master_ws/tracing_ws/build/tracetools_launch /home/henry/master_ws/tracing_ws/install/tracetools_launch/lib/python3.8/site-packages /home/henry/master_ws/tracing_ws/build/ros2trace /home/henry/master_ws/tracing_ws/install/ros2trace/lib/python3.8/site-packages /home/henry/master_ws/tracing_ws/build/tracetools_trace /home/henry/master_ws/tracing_ws/install/tracetools_trace/lib/python3.8/site-packages /home/henry/master_ws/tracing_ws/build/ros2trace_analysis /home/henry/master_ws/tracing_ws/install/ros2trace_analysis/lib/python3.8/site-packages /home/henry/master_ws/tracing_ws/build/tracetools_analysis /home/henry/master_ws/tracing_ws/install/tracetools_analysis/lib/python3.8/site-packages /home/henry/master_ws/tracing_ws/build/tracetools_read /home/henry/master_ws/tracing_ws/install/tracetools_read/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/webcam_pub /home/henry/master_ws/testbench_ws/install/webcam_pub/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/ultrasonic /home/henry/master_ws/testbench_ws/install/ultrasonic/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/thermal_cam /home/henry/master_ws/testbench_ws/install/thermal_cam/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/sick_scan/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/rosbag_master /home/henry/master_ws/testbench_ws/install/rosbag_master/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/realsense2_camera_msgs/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/opencv_tests /home/henry/master_ws/testbench_ws/install/opencv_tests/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/laserscan_fakedata /home/henry/master_ws/testbench_ws/install/laserscan_fakedata/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/cv_basics /home/henry/master_ws/testbench_ws/install/cv_basics/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/image_geometry/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/domain_coordinator /home/henry/master_ws/testbench_ws/install/domain_coordinator/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/diagnostic_updater/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/diagnostic_aggregator/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/install/cv_bridge/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/conveyor /home/henry/master_ws/testbench_ws/install/conveyor/lib/python3.8/site-packages /home/henry/master_ws/testbench_ws/build/ament_package /home/henry/master_ws/testbench_ws/install/ament_package/lib/python3.8/site-packages /home/henry/data_ws/build/opencv_tests /home/henry/data_ws/install/opencv_tests/lib/python3.8/site-packages /home/henry/data_ws/build/camera_calibration/src /home/henry/data_ws/install/camera_calibration/lib/python3.8/site-packages /home/henry/data_ws/install/image_geometry/lib/python3.8/site-packages /home/henry/data_ws/install/cv_bridge/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosbridge_test_msgs/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosbridge_server/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosbridge_msgs/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosapi/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosbridge_library/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/build/rosboard /home/henry/master_ws/webserver_ws/install/rosboard/lib/python3.8/site-packages /home/henry/master_ws/webserver_ws/install/rosapi_msgs/lib/python3.8/site-packages /opt/ros/foxy/lib/python3.8/site-packages /usr/bin/python3.8/site-packages /usr/lib/python38.zip /usr/lib/python3.8 /usr/lib/python3.8/lib-dynload /home/henry/.local/lib/python3.8/site-packages /usr/local/lib/python3.8/dist-packages /usr/lib/python3/dist-packages /usr/bin/python3.8/site-packages

Thanks for your attention. I’m looking forward to your reply.

Henrycious commented 2 years ago

Found the error myself. Had to delete the following files on my side: python3.9, python3.9-config, python3.10, python3.10-config (in /usr/local/bin) Switching python-versions, uninstalling old ones, using the update-alternatives and reinstalling python did not do the trick. ROS Foxy seems to not do well with multiple versions of python. There is no easy way to switch if there are multiple versions installed.