BabitMF / bmf

Cross-platform, customizable multimedia/video processing framework. With strong GPU acceleration, heterogeneous design, multi-language support, easy to use, multi-framework compatible and high performance, the framework is ideal for transcoding, AI inference, algorithm integration, live video streaming, and more.
https://babitmf.github.io/
Apache License 2.0
807 stars 71 forks source link

bmf (manual compilation) does not run properly with python on macos #143

Open JackLau1222 opened 2 weeks ago

JackLau1222 commented 2 weeks ago

Compile using build_os.sh, I think there is problem with library linking. In other OS we build these library products into /output/... But why does macos have a separate output path called build_osx but without all the required files like libhmp.dylib (only libhmp.so)

> python3 python_demo.py
Traceback (most recent call last):
  File "/Users/jacklau/Documents/workspace/bmf/bmf/test/distributed_node/build/python_demo.py", line 7, in <module>
    import bmf
  File "/Users/jacklau/Documents/workspace/bmf/output/bmf/__init__.py", line 4, in <module>
    from bmf.python_sdk.module_functor import make_sync_func
  File "/Users/jacklau/Documents/workspace/bmf/output/bmf/python_sdk/__init__.py", line 1, in <module>
    from .module_functor import make_sync_func, ProcessDone
  File "/Users/jacklau/Documents/workspace/bmf/output/bmf/python_sdk/module_functor.py", line 1, in <module>
    import bmf.lib._hmp
ImportError: dlopen(/Users/jacklau/Documents/workspace/bmf/output/bmf/lib/_hmp.cpython-39-darwin.so, 0x0002): Library not loaded: @rpath/libhmp.dylib
  Referenced from: <B8437DA5-5CC6-3E97-ACC7-B9AE5B811CAC> /Users/jacklau/Documents/workspace/bmf/output/bmf/lib/_hmp.cpython-39-darwin.so
  Reason: tried: '/Users/jacklau/Documents/workspace/bmf/build_osx/output/bmf/lib/libhmp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacklau/Documents/workspace/bmf/build_osx/output/bmf/lib/libhmp.dylib' (no such file), '/Users/jacklau/Documents/workspace/bmf/build_osx/output/bmf/lib/libhmp.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/jacklau/Documents/workspace/bmf/build_osx/output/bmf/lib/libhmp.dylib' (no such file)

And I think we should use only one build script (like build.sh) to compile our project in any OS. The path and file structure of the product should also be consistent