IntelRealSense / librealsense

Intel® RealSense™ SDK
https://www.intelrealsense.com/
Apache License 2.0
7.42k stars 4.8k forks source link

pyrealsense2 not installed when built from source #13080

Closed eufrizz closed 2 days ago

eufrizz commented 4 days ago

When building librealsense with Python bindings from source, I noticed that the C++ librealsense worked fine but pyrealsense2 couldn't be imported. After digging deeper, I found that the pyrealsense2* .so was being built but not installed. I checked the CMakeLists and there was indeed no install rule for the library (there is when legacy pybackend2 is used, but that wasn't the case for me). Thus I went and added the install rules and it now works perfectly. PR here: https://github.com/IntelRealSense/librealsense/pull/13079

For background, I'm on an NVIDIA AGX Orin with Jetpack 6/L4T 36.2 so I have to compile from source with RSUSB backend to get it to work. This is the command I'm using for anyone in the same position:

cmake .. -DBUILD_PYTHON_BINDINGS=true -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=Release -DFORCE_RSUSB_BACKEND=true -DBUILD_WITH_CUDA=true  && make -j12 && sudo make install

Seems like a huge oversight!? I notice quite a few similar issues with people building from source for Jetson not finding pyrealsense2/needing to copy over the __init__.py (linked them in the PR), and the suggestion to "copy over the .so files" to the working directory (!?!)

make install output before -- Up-to-date: /usr/local/lib/librealsense2.so.2.55.1 -- Up-to-date: /usr/local/lib/librealsense2.so.2.55 -- Up-to-date: /usr/local/lib/librealsense2.so -- Up-to-date: /usr/local/include/librealsense2 -- Up-to-date: /usr/local/include/librealsense2/rs.h -- Up-to-date: /usr/local/include/librealsense2/rsutil.h -- Up-to-date: /usr/local/include/librealsense2/rs_advanced_mode.hpp -- Up-to-date: /usr/local/include/librealsense2/h -- Up-to-date: /usr/local/include/librealsense2/h/rs_advanced_mode_command.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_processing.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_frame.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_context.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_sensor.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_option.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_config.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_record_playback.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_pipeline.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_types.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_internal.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_device.h -- Up-to-date: /usr/local/include/librealsense2/rs.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_serializable_device.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_types.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_record_playback.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_context.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_device.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_frame.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_internal.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_processing.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_export.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_options.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_sensor.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_pipeline.hpp -- Up-to-date: /usr/local/include/librealsense2/rs_advanced_mode.h -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Targets.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Targets-release.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Config.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2ConfigVersion.cmake -- Up-to-date: /usr/local/lib/pkgconfig/realsense2.pc -- Up-to-date: /usr/local/lib/librsutils.a -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so.2.55.1 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so.2.55 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so -- Up-to-date: /usr/local/lib/librealsense-file.a -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Targets.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Targets-release.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Config.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2ConfigVersion.cmake -- Up-to-date: /usr/local/lib/librealsense2-gl.so.2.55.1 -- Up-to-date: /usr/local/lib/librealsense2-gl.so.2.55 -- Up-to-date: /usr/local/lib/librealsense2-gl.so -- Up-to-date: /usr/local/include/librealsense2-gl/rs_processing_gl.h -- Up-to-date: /usr/local/include/librealsense2-gl/rs_processing_gl.hpp -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glTargets.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glTargets-release.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glConfig.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glConfigVersion.cmake -- Up-to-date: /usr/local/lib/pkgconfig/realsense2-gl.pc -- Up-to-date: /usr/local/bin/rs-hello-realsense -- Up-to-date: /usr/local/bin/rs-software-device -- Up-to-date: /usr/local/bin/rs-capture -- Up-to-date: /usr/local/bin/rs-callback -- Up-to-date: /usr/local/bin/rs-save-to-disk -- Up-to-date: /usr/local/bin/rs-multicam -- Up-to-date: /usr/local/bin/rs-pointcloud -- Up-to-date: /usr/local/bin/rs-align -- Up-to-date: /usr/local/bin/rs-align-gl -- Up-to-date: /usr/local/bin/rs-align-advanced -- Up-to-date: /usr/local/bin/rs-sensor-control -- Up-to-date: /usr/local/bin/rs-measure -- Up-to-date: /usr/local/bin/rs-depth -- Up-to-date: /usr/local/bin/rs-color -- Up-to-date: /usr/local/bin/rs-distance -- Up-to-date: /usr/local/bin/rs-post-processing -- Up-to-date: /usr/local/bin/rs-record-playback -- Up-to-date: /usr/local/bin/rs-motion -- Up-to-date: /usr/local/bin/rs-gl -- Up-to-date: /usr/local/bin/rs-hdr -- Up-to-date: /usr/local/bin/rs-convert -- Up-to-date: /usr/local/bin/rs-enumerate-devices -- Up-to-date: /usr/local/bin/rs-fw-logger -- Up-to-date: /usr/local/bin/rs-terminal -- Up-to-date: /usr/local/bin/rs-record -- Up-to-date: /usr/local/bin/rs-fw-update -- Up-to-date: /usr/local/bin/rs-embed -- Up-to-date: /usr/local/bin/rs-data-collect -- Installing: /usr/local/bin/realsense-viewer -- Set runtime path of "/usr/local/bin/realsense-viewer" to "" -- Up-to-date: /home/eugene/Documents/librealsense2/presets -- Up-to-date: /home/eugene/Documents/librealsense2/presets/sample.preset -- Installing: /usr/local/bin/rs-depth-quality -- Set runtime path of "/usr/local/bin/rs-depth-quality" to "" -- Up-to-date: /usr/local/bin/rs-rosbag-inspector -- Up-to-date: /usr/local/bin/rs-benchmark -- Up-to-date: /usr/local/lib/libfw.a
make install output after -- Up-to-date: /usr/local/lib/librealsense2.so.2.55.1 -- Up-to-date: /usr/local/lib/librealsense2.so.2.55 -- Up-to-date: /usr/local/lib/librealsense2.so -- Up-to-date: /usr/local/include/librealsense2 -- Up-to-date: /usr/local/include/librealsense2/rs.h -- Up-to-date: /usr/local/include/librealsense2/rsutil.h -- Up-to-date: /usr/local/include/librealsense2/rs_advanced_mode.hpp -- Up-to-date: /usr/local/include/librealsense2/h -- Up-to-date: /usr/local/include/librealsense2/h/rs_advanced_mode_command.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_processing.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_frame.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_context.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_sensor.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_option.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_config.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_record_playback.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_pipeline.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_types.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_internal.h -- Up-to-date: /usr/local/include/librealsense2/h/rs_device.h -- Up-to-date: /usr/local/include/librealsense2/rs.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_serializable_device.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_types.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_record_playback.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_context.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_device.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_frame.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_internal.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_processing.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_export.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_options.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_sensor.hpp -- Up-to-date: /usr/local/include/librealsense2/hpp/rs_pipeline.hpp -- Up-to-date: /usr/local/include/librealsense2/rs_advanced_mode.h -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Targets.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Targets-relwithdebinfo.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2Config.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2/realsense2ConfigVersion.cmake -- Up-to-date: /usr/local/lib/pkgconfig/realsense2.pc -- Up-to-date: /usr/local/lib/librsutils.a -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so.2.55.1 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so.2.55 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrsutils.cpython-310-aarch64-linux-gnu.so -- Up-to-date: /usr/local/lib/librealsense-file.a -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Targets.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Targets-relwithdebinfo.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2Config.cmake -- Up-to-date: /usr/local/lib/cmake/pyrealsense2/pyrealsense2ConfigVersion.cmake -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-310-aarch64-linux-gnu.so.2.55.1 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-310-aarch64-linux-gnu.so.2.55 -- Up-to-date: /usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-310-aarch64-linux-gnu.so -- Installing: /usr/lib/python3/dist-packages/pyrealsense2/__init__.py -- Up-to-date: /usr/local/lib/librealsense2-gl.so.2.55.1 -- Up-to-date: /usr/local/lib/librealsense2-gl.so.2.55 -- Up-to-date: /usr/local/lib/librealsense2-gl.so -- Up-to-date: /usr/local/include/librealsense2-gl/rs_processing_gl.h -- Up-to-date: /usr/local/include/librealsense2-gl/rs_processing_gl.hpp -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glTargets.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glTargets-relwithdebinfo.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glConfig.cmake -- Up-to-date: /usr/local/lib/cmake/realsense2-gl/realsense2-glConfigVersion.cmake -- Up-to-date: /usr/local/lib/pkgconfig/realsense2-gl.pc -- Up-to-date: /usr/local/bin/rs-hello-realsense -- Up-to-date: /usr/local/bin/rs-software-device -- Up-to-date: /usr/local/bin/rs-capture -- Up-to-date: /usr/local/bin/rs-callback -- Up-to-date: /usr/local/bin/rs-save-to-disk -- Up-to-date: /usr/local/bin/rs-multicam -- Up-to-date: /usr/local/bin/rs-pointcloud -- Up-to-date: /usr/local/bin/rs-align -- Up-to-date: /usr/local/bin/rs-align-gl -- Up-to-date: /usr/local/bin/rs-align-advanced -- Up-to-date: /usr/local/bin/rs-sensor-control -- Up-to-date: /usr/local/bin/rs-measure -- Up-to-date: /usr/local/bin/rs-depth -- Up-to-date: /usr/local/bin/rs-color -- Up-to-date: /usr/local/bin/rs-distance -- Up-to-date: /usr/local/bin/rs-post-processing -- Up-to-date: /usr/local/bin/rs-record-playback -- Up-to-date: /usr/local/bin/rs-motion -- Up-to-date: /usr/local/bin/rs-gl -- Up-to-date: /usr/local/bin/rs-hdr -- Up-to-date: /usr/local/bin/rs-convert -- Up-to-date: /usr/local/bin/rs-enumerate-devices -- Up-to-date: /usr/local/bin/rs-fw-logger -- Up-to-date: /usr/local/bin/rs-terminal -- Up-to-date: /usr/local/bin/rs-record -- Up-to-date: /usr/local/bin/rs-fw-update -- Up-to-date: /usr/local/bin/rs-embed -- Up-to-date: /usr/local/bin/rs-data-collect -- Installing: /usr/local/bin/realsense-viewer -- Set runtime path of "/usr/local/bin/realsense-viewer" to "" -- Up-to-date: /home/eugene/Documents/librealsense2/presets -- Up-to-date: /home/eugene/Documents/librealsense2/presets/sample.preset -- Installing: /usr/local/bin/rs-depth-quality -- Set runtime path of "/usr/local/bin/rs-depth-quality" to "" -- Up-to-date: /usr/local/bin/rs-rosbag-inspector -- Up-to-date: /usr/local/bin/rs-benchmark -- Up-to-date: /usr/local/lib/libfw.a
Required Info
Camera Model D435i
Firmware Version 5.15.1
Operating System & Version Ubuntu 22 L4T 36.2
Platform NVIDIA Orin AGX
SDK Version 2.55.1
MartyG-RealSense commented 3 days ago

Thanks so much @eufrizz for sharing your knowledge and creating a PR! I have added an Enhancement label to this issue to signify that it should be kept open whilst your PR is active. Thanks again!

eufrizz commented 2 days ago

Fixed with https://github.com/IntelRealSense/librealsense/pull/13079