Skip to content

Python version conflict between rclpy and ros-humble-realsense2-camera #9

@chenzhejin

Description

@chenzhejin

Hello experts,

I followed the installation tutorial and successfully installed all the required packages. However, when I tried to run the following command:

ros2 launch propif_bringup system.launch.py

I encountered the following error:

(propif_ros2) chenzhe@...:~/ProPIF_workspace/ProPIF/propif_ros2$ source install/setup.bash
(propif_ros2) chenzhe@...:~/ProPIF_workspace/ProPIF/propif_ros2$ ros2 launch propif_bringup system.launch.py

Output:

Both the simulation_node and control_node processes failed with a ModuleNotFoundError:

ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'
The C extension '/home/chenzhe/miniforge3/envs/propif_ros2/lib/python3.11/site-packages/_rclpy_pybind11.cpython-310-x86_64-linux-gnu.so' isn't present on the system.

This error seems to be caused by Python version mismatch and the rclpy C extension not being properly built. According to the ROS 2 Humble documentation, ROS 2 Humble officially supports Python 3.10.
Image

So, I attempted to fix this by modifying environment.yml, changing the Python version from 3.11 to 3.10. However, I then encountered another issue when trying to create the environment:

mamba env create -f environment.yml

Error:

libmamba Could not solve for environment specs

The following packages are incompatible:

├─ python =3.10 * 
│  ├─ installable: python 3.10.8
│  └─ requires: python_abi =3.10 *_cp310
└─ ros-humble-realsense2-camera 
   └─ requires: python_abi =3.11 *_cp311, which conflicts with the above

This means the ros-humble-realsense2-camera package only supports Python 3.11, but switching to Python 3.11 breaks compatibility with the core rclpy module.

Since ros-humble-realsense2-camera is essential, simply removing it doesn't seem to be a reasonable solution.

I would appreciate any guidance or suggestions on how to properly resolve this version conflict.
Is there a recommended way to either:

Use Python 3.10 and still include ros-humble-realsense2-camera, or

Use Python 3.11 and successfully rebuild all necessary rclpy C extensions?

Thank you in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions