Undefined symbol using SDK5.0 with python wrapper

Hey, I am running the positional tracking python example with a ZED 2i on jetson nano with this error output:

(zed_omnibot_env) lab101-jetson@ubuntu:~/Code/zed_omnibot/zed-sdk/positional tracking/positional tracking/python$ python positional_tracking.py 
Traceback (most recent call last):
  File "/home/lab101-jetson/Code/zed_omnibot/zed-sdk/positional tracking/positional tracking/python/positional_tracking.py", line 26, in <module>
    import ogl_viewer.tracking_viewer as gl
  File "/home/lab101-jetson/Code/zed_omnibot/zed-sdk/positional tracking/positional tracking/python/ogl_viewer/tracking_viewer.py", line 12, in <module>
    import pyzed.sl as sl
ImportError: /home/lab101-jetson/Code/zed_omnibot/zed-sdk/zed_omnibot_env/lib/python3.10/site-packages/pyzed/sl.cpython-310-aarch64-linux-gnu.so: undefined symbol: _ZN2sl6Camera15pauseSVOReadingEb

I was able to run python examples before. But not after I downloaded this version ZED_SDK_Tegra_L4T36.4_v5.0.3.zstd.run. My cython version is 3.1.2 as below:
Successfully installed cython-3.1.2 numpy-2.2.6 pyzed-5.0

Hi @wenxi
Welcome to the StereoLabs community.

The team is analyzing your problem; we’ll get back to you soon.

Hi @wenxi,

Thank you for your feedback and for the report.

Looking at the error, this look like a mismatch issue between the pyzed python bindings and ZED SDK version: the undefined symbol _ZN2sl6Camera15pauseSVOReadingEb indicates that the pyzed bindings were compiled against a different version of the ZED SDK than what’s currently installed.

Could you re-install the ZED SDK from a clean env ?

I guess you already have the 5.0.3 libs on your jetson, so if you don’t want to re-run the ZED_SDK_Tegra_L4T36.4_v5.0.3.zstd.run installer, you can re-install the python package only and use the --force parameter to --force-reinstall your python package (don’t forget to activate the env to not pip install the pyzed package in the base :slight_smile:)

cd /usr/local/zed/
python3 get_python_api.py --force

To verify it works, you can simply run

python3 -c "import pyzed.sl as sl; print('Success! ZED Python API is working')"

This should get you back up and running! Let me know if you hit any other issues.

1 Like

It works! Thank you.

1 Like