OpenMined / PyDP

The Python Differential Privacy Library. Built on top of: https://github.com/google/differential-privacy
Apache License 2.0
491 stars 136 forks source link

Error occurring during the execution of an example program on Apple M2 max #454

Open tak-ka3 opened 1 year ago

tak-ka3 commented 1 year ago

Description

When I execute the following program written in README.md,

import pydp as dp
from pydp.algorithms.laplacian import BoundedMean

x = BoundedMean(0.6, 1, 10)

x = BoundedMean(0.6)

x.quick_result(input_data)

I have the following error.

 File "/opt/homebrew/lib/python3.11/site-packages/pydp/__init__.py", line 1, in <module>
    from .pydp import *
ImportError: dlopen(/opt/homebrew/lib/python3.11/site-packages/pydp/pydp.so, 0x0002): tried: '/opt/homebrew/lib/python3.11/site-packages/pydp/pydp.so' (not a mach-o file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/lib/python3.11/site-packages/pydp/pydp.so' (no such file), '/opt/homebrew/lib/python3.11/site-packages/pydp/pydp.so' (not a mach-o file)

How to Reproduce

  1. Excute pip3 install python-dp
  2. Go to '.' (root directory)
  3. Copy the code in README.md (the above code)
  4. Execute it

Expected Behavior

The code will execute without an error.

System Information

Additional Context

I tried these commands , but execution of 'build_PyDP.sh' generated errors.

chinmayshah99 commented 1 year ago

Hi @tak-ka3, pydp currently does not support python 3.11 + m1/m2 macs if you download from pypi. More on supported files here: https://pypi.org/project/python-dp/1.1.3rc6/#files.

Can you share the logs when you run build_PyDP.sh?

strivn commented 2 months ago

Hi - wondering whether this is still ongoing? I'm currently trying to install PyDP to explore DP, but has the same issue.

System Information

Initially, prereq_mac.sh 'failed' due to:

Warning: Formula bazelbuild/tap/bazel was renamed to bazel.
Warning: No available formula or cask with the name "bazelbuild/tap/bazel".
Warning: Formula bazelbuild/tap/bazel was renamed to bazel.

Solved by a quick edit on the script. Then I ran build_PyDP.sh and received the following error:

Error

ERROR: /.../PyDP/src/bindings/BUILD:3:17: Linking src/bindings/_pydp.so failed: (Exit 1): cc_wrapper.sh failed: error executing CppLink command (from target //src/bindings:_pydp.so) 
...
Undefined symbols for architecture arm64:
  "_PyBaseObject_Type", referenced from:
      pybind11::detail::make_object_base_type(_typeobject*) in bounded_functions.o
  "_PyBuffer_Release", referenced from:
      pybind11::buffer_info::~buffer_info() in bounded_functions.o
  "_PyByteArray_AsString", referenced from:
      bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load_raw<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in bounded_functions.o
  "_PyByteArray_Size", referenced from:
      bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load_raw<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in bounded_functions.o
  "_PyByteArray_Type", referenced from:
      bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load_raw<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in bounded_functions.o
  "_PyBytes_AsString", referenced from:
      bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load_raw<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in bounded_functions.o
  "_PyBytes_AsStringAndSize", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::str::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>() const in bounded_functions.o
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> pybind11::bytes::string_op<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>() const in proto.o
  "_PyBytes_FromStringAndSize", referenced from:
      pybind11::bytes::bytes<unsigned long, 0>(char const*, unsigned long const&) in proto.o
  "_PyBytes_Size", referenced from:
      bool pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load_raw<char>(std::__1::enable_if<std::is_same<char, char>::value, pybind11::handle>::type) in bounded_functions.o
  "_PyCFunction_Type", referenced from:
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
      PyCFunction_GET_SELF(_object*) in bounded_functions.o
      PyCFunction_GET_SELF(_object*) in count.o
      PyCFunction_GET_SELF(_object*) in distributions.o
      PyCFunction_GET_SELF(_object*) in order_statistics.o
      PyCFunction_GET_SELF(_object*) in partition_selection_strategies.o
      PyCFunction_GET_SELF(_object*) in qunatile_tree.o
      ...
  "_PyCMethod_New", referenced from:
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
  "_PyCapsule_GetContext", referenced from:
      pybind11::capsule::initialize_with_void_ptr_destructor(void const*, char const*, void (*)(void*))::'lambda'(_object*)::operator()(_object*) const in bounded_functions.o
  "_PyCapsule_GetName", referenced from:
      pybind11::capsule::name() const in bounded_functions.o
      pybind11::capsule::get_name_in_error_scope(_object*) in bounded_functions.o
  "_PyCapsule_GetPointer", referenced from:
      pybind11::detail::get_internals_pp_from_capsule(pybind11::handle) in bounded_functions.o
      pybind11::detail::function_record* pybind11::capsule::get_pointer<pybind11::detail::function_record>() const in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      pybind11::capsule::initialize_with_void_ptr_destructor(void const*, char const*, void (*)(void*))::'lambda'(_object*)::operator()(_object*) const in bounded_functions.o
      pybind11::detail::type_info* pybind11::capsule::get_pointer<pybind11::detail::type_info>() const in bounded_functions.o
  "_PyCapsule_New", referenced from:
      pybind11::capsule::capsule(void const*, char const*, void (*)(_object*)) in bounded_functions.o
      pybind11::capsule::initialize_with_void_ptr_destructor(void const*, char const*, void (*)(void*)) in bounded_functions.o
  "_PyCapsule_SetContext", referenced from:
      pybind11::capsule::initialize_with_void_ptr_destructor(void const*, char const*, void (*)(void*)) in bounded_functions.o
  "_PyCapsule_SetPointer", referenced from:
      pybind11::capsule::set_pointer(void const*) in bounded_functions.o
  "_PyCapsule_Type", referenced from:
      pybind11::capsule::check_(pybind11::handle) in bounded_functions.o
  "_PyDict_Contains", referenced from:
      bool pybind11::dict::contains<pybind11::str&>(pybind11::str&) const in partition_selection_strategies.o
  "_PyDict_Copy", referenced from:
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
  "_PyDict_DelItemString", referenced from:
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
  "_PyDict_GetItemWithError", referenced from:
      pybind11::detail::dict_getitemstring(_object*, char const*) in bounded_functions.o
  "_PyDict_New", referenced from:
      pybind11::dict::dict() in bounded_functions.o
  "_PyDict_Next", referenced from:
      pybind11::detail::iterator_policies::dict_readonly::increment() in bounded_functions.o
  "_PyDict_Size", referenced from:
      pybind11::dict::size() const in bounded_functions.o
  "_PyDict_Type", referenced from:
      pybind11::dict::raw_dict(_object*) in bounded_functions.o
  "_PyErr_Clear", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<bool, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::getattr(pybind11::handle, char const*, pybind11::handle) in bounded_functions.o
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      ...
  "_PyErr_Fetch", referenced from:
      pybind11::error_scope::error_scope() in bounded_functions.o
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::detail::error_fetch_and_normalize::error_fetch_and_normalize(char const*) in bounded_functions.o
  "_PyErr_Format", referenced from:
      _pybind11_meta_call in bounded_functions.o
      _PyInit__pydp in bindings.o
  "_PyErr_NormalizeException", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::detail::error_fetch_and_normalize::error_fetch_and_normalize(char const*) in bounded_functions.o
  "_PyErr_Occurred", referenced from:
      pybind11::pybind11_fail(char const*) in bounded_functions.o
      pybind11::pybind11_fail(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) in bounded_functions.o
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::detail::dict_getitemstring(_object*, char const*) in bounded_functions.o
      pybind11::str::str(char const*) in bounded_functions.o
      pybind11::detail::raise_err(_object*, char const*) in bounded_functions.o
      ...
  "_PyErr_Restore", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::detail::error_fetch_and_normalize::restore() in bounded_functions.o
      pybind11::error_scope::~error_scope() in bounded_functions.o
  "_PyErr_SetString", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
      pybind11::cast_error::set_error() const in bounded_functions.o
      pybind11::detail::raise_err(_object*, char const*) in bounded_functions.o
      _pybind11_object_init in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      ...
  "_PyErr_WarnEx", referenced from:
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
  "_PyErr_WriteUnraisable", referenced from:
      pybind11::capsule::get_name_in_error_scope(_object*) in bounded_functions.o
  "_PyEval_AcquireThread", referenced from:
      pybind11::gil_scoped_acquire::gil_scoped_acquire() in bounded_functions.o
  "_PyEval_GetBuiltins", referenced from:
      pybind11::detail::get_python_state_dict() in bounded_functions.o
  "_PyEval_SaveThread", referenced from:
      pybind11::gil_scoped_acquire::~gil_scoped_acquire() in bounded_functions.o
  "_PyExc_BufferError", referenced from:
      _pybind11_getbuffer in bounded_functions.o
      _pybind11_getbuffer in bounded_functions.o
  "_PyExc_FutureWarning", referenced from:
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
  "_PyExc_ImportError", referenced from:
      _PyInit__pydp in bindings.o
  "_PyExc_IndexError", referenced from:
      pybind11::detail::translate_exception(std::exception_ptr) in bounded_functions.o
  "_PyExc_MemoryError", referenced from:
      pybind11::detail::translate_exception(std::exception_ptr) in bounded_functions.o
  "_PyExc_OverflowError", referenced from:
      pybind11::detail::translate_exception(std::exception_ptr) in bounded_functions.o
  "_PyExc_RuntimeError", referenced from:
      pybind11::detail::translate_exception(std::exception_ptr) in bounded_functions.o
      pybind11::cast_error::set_error() const in bounded_functions.o
      pybind11::reference_cast_error::set_error() const in bounded_functions.o
  "_PyExc_SystemError", referenced from:
      pybind11::detail::get_python_state_dict() in bounded_functions.o
      pybind11::detail::get_internals_pp_from_capsule(pybind11::handle) in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
  "_PyExc_TypeError", referenced from:
      _pybind11_meta_call in bounded_functions.o
      _pybind11_object_init in bounded_functions.o
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
      pybind11::type_error::set_error() const in bounded_functions.o
      pybind11::detail::type_caster_generic::src_and_type(void const*, std::type_info const&, std::type_info const*) in bounded_functions.o
  "_PyExc_ValueError", referenced from:
      pybind11::detail::translate_exception(std::exception_ptr) in bounded_functions.o
      pybind11::value_error::set_error() const in partition_selection_strategies.o
  "_PyException_SetCause", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
  "_PyException_SetContext", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
  "_PyException_SetTraceback", referenced from:
      pybind11::raise_from(_object*, char const*) in bounded_functions.o
  "_PyFloat_AsDouble", referenced from:
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyFloat_FromDouble", referenced from:
      std::__1::enable_if<std::is_floating_point<double>::value, pybind11::handle>::type pybind11::detail::type_caster<double, void>::cast<double>(double, pybind11::return_value_policy, pybind11::handle) in bounded_functions.o
  "_PyFloat_Type", referenced from:
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<long long, void>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyFrame_GetBack", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
  "_PyFrame_GetCode", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
  "_PyFrame_GetLineNumber", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
  "_PyGILState_Check", referenced from:
      pybind11::handle::dec_ref() const & in bounded_functions.o
      pybind11::handle::inc_ref() const & in bounded_functions.o
      pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr>>::operator()<(pybind11::return_value_policy)1, pybind11::handle&>(pybind11::handle&) const in bounded_functions.o
      pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr>>::operator()<(pybind11::return_value_policy)1, char const* const&>(char const* const&) const in bounded_functions.o
      pybind11::object pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::str_attr>>::operator()<(pybind11::return_value_policy)1, char const (&) [9]>(char const (&) [9]) const in bounded_functions.o
      pybind11::object pybind11::detail::object_api<pybind11::handle>::operator()<(pybind11::return_value_policy)1, pybind11::handle, pybind11::handle, pybind11::none, pybind11::str>(pybind11::handle&&, pybind11::handle&&, pybind11::none&&, pybind11::str&&) const in bounded_functions.o
      pybind11::object pybind11::detail::object_api<pybind11::handle>::operator()<(pybind11::return_value_policy)1, pybind11::cpp_function>(pybind11::cpp_function&&) const in partition_selection_strategies.o
      ...
  "_PyGILState_Ensure", referenced from:
      pybind11::detail::get_internals()::gil_scoped_acquire_local::gil_scoped_acquire_local() in bounded_functions.o
  "_PyGILState_GetThisThreadState", referenced from:
      pybind11::gil_scoped_acquire::gil_scoped_acquire() in bounded_functions.o
  "_PyGILState_Release", referenced from:
      pybind11::detail::get_internals()::gil_scoped_acquire_local::~gil_scoped_acquire_local() in bounded_functions.o
  "_PyImport_AddModule", referenced from:
      pybind11::module_::def_submodule(char const*, char const*) in bindings.o
  "_PyIndex_Check", referenced from:
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool)::'lambda'(_object*)::operator()(_object*) const in bounded_functions.o
      pybind11::detail::type_caster<long long, void>::load(pybind11::handle, bool)::'lambda'(_object*)::operator()(_object*) const in bounded_functions.o
  "_PyInstanceMethod_New", referenced from:
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
  "_PyInstanceMethod_Type", referenced from:
      _pybind11_meta_getattro in bounded_functions.o
      pybind11::cpp_function::initialize_generic(std::__1::unique_ptr<pybind11::detail::function_record, pybind11::cpp_function::InitializingFunctionRecordDeleter>&&, char const*, std::type_info const* const*, unsigned long) in bounded_functions.o
      pybind11::detail::get_function(pybind11::handle) in bounded_functions.o
  "_PyList_Append", referenced from:
      void pybind11::list::append<_object*>(_object*&&) in mechanism.o
  "_PyList_GetItem", referenced from:
      pybind11::object pybind11::detail::accessor_policies::list_item::get<unsigned long, 0>(pybind11::handle, unsigned long const&) in bounded_functions.o
  "_PyList_New", referenced from:
      pybind11::list::list<long, 0>(long) in bounded_functions.o
      pybind11::list::list<unsigned long, 0>(unsigned long) in qunatile_tree.o
  "_PyList_Size", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::list::size() const in bounded_functions.o
  "_PyLong_AsLong", referenced from:
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<long long, void>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyLong_FromLong", referenced from:
      pybind11::int_::int_<int, 0>(int) in partition_selection_strategies.o
  "_PyLong_FromSize_t", referenced from:
      std::__1::enable_if<!std::is_floating_point<unsigned long long>::value && std::is_unsigned<unsigned long long>::value && sizeof (unsigned long long) <= 8ul, pybind11::handle>::type pybind11::detail::type_caster<unsigned long long, void>::cast<unsigned long long>(unsigned long long, pybind11::return_value_policy, pybind11::handle) in rand.o
  "_PyLong_FromSsize_t", referenced from:
      std::__1::enable_if<!std::is_floating_point<int>::value && std::is_signed<int>::value && sizeof (int) <= 8ul, pybind11::handle>::type pybind11::detail::type_caster<int, void>::cast<int>(int, pybind11::return_value_policy, pybind11::handle) in bounded_functions.o
      std::__1::enable_if<!std::is_floating_point<long long>::value && std::is_signed<long long>::value && sizeof (long long) <= 8ul, pybind11::handle>::type pybind11::detail::type_caster<long long, void>::cast<long long>(long long, pybind11::return_value_policy, pybind11::handle) in bounded_functions.o
  "_PyMem_Calloc", referenced from:
      pybind11::detail::instance::allocate_layout() in bounded_functions.o
  "_PyMem_Free", referenced from:
      pybind11::detail::instance::deallocate_layout() in bounded_functions.o
  "_PyMethod_Type", referenced from:
      pybind11::detail::get_function(pybind11::handle) in bounded_functions.o
  "_PyModule_AddObject", referenced from:
      pybind11::module_::add_object(char const*, pybind11::handle, bool) in partition_selection_strategies.o
  "_PyModule_Create2", referenced from:
      pybind11::module_::create_extension_module(char const*, char const*, PyModuleDef*) in bindings.o
  "_PyModule_GetName", referenced from:
      pybind11::module_::def_submodule(char const*, char const*) in bindings.o
  "_PyModule_Type", referenced from:
      pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in bounded_functions.o
  "_PyNumber_And", referenced from:
      pybind11::detail::object_api<pybind11::handle>::operator&(pybind11::detail::object_api<pybind11::handle> const&) const in partition_selection_strategies.o
  "_PyNumber_Check", referenced from:
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<long long, void>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyNumber_Float", referenced from:
      pybind11::detail::type_caster<double, void>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyNumber_Invert", referenced from:
      pybind11::detail::object_api<pybind11::handle>::operator~() const in partition_selection_strategies.o
  "_PyNumber_Long", referenced from:
      pybind11::detail::type_caster<int, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<long long, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::int_::int_(pybind11::object const&) in partition_selection_strategies.o
  "_PyNumber_Or", referenced from:
      pybind11::detail::object_api<pybind11::handle>::operator|(pybind11::detail::object_api<pybind11::handle> const&) const in partition_selection_strategies.o
  "_PyNumber_Xor", referenced from:
      pybind11::detail::object_api<pybind11::handle>::operator^(pybind11::detail::object_api<pybind11::handle> const&) const in partition_selection_strategies.o
  "_PyObject_CallFunctionObjArgs", referenced from:
      pybind11::dict::raw_dict(_object*) in bounded_functions.o
  "_PyObject_CallObject", referenced from:
      pybind11::detail::simple_collector<(pybind11::return_value_policy)1>::call(_object*) const in bounded_functions.o
  "_PyObject_ClearWeakRefs", referenced from:
      pybind11::detail::clear_instance(_object*) in bounded_functions.o
  "_PyObject_GC_UnTrack", referenced from:
      _pybind11_object_dealloc in bounded_functions.o
  "_PyObject_GenericGetDict", referenced from:
      pybind11::detail::enable_dynamic_attributes(_heaptypeobject*)::getset in bounded_functions.o
  "_PyObject_GenericSetDict", referenced from:
      pybind11::detail::enable_dynamic_attributes(_heaptypeobject*)::getset in bounded_functions.o
  "_PyObject_GetAttrString", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::getattr(pybind11::handle, char const*) in bounded_functions.o
      pybind11::getattr(pybind11::handle, char const*, pybind11::handle) in bounded_functions.o
  "_PyObject_GetItem", referenced from:
      pybind11::detail::accessor_policies::generic_item::get(pybind11::handle, pybind11::handle) in partition_selection_strategies.o
  "_PyObject_HasAttrString", referenced from:
      pybind11::hasattr(pybind11::handle, char const*) in bounded_functions.o
  "_PyObject_IsInstance", referenced from:
      _pybind11_meta_setattro in bounded_functions.o
      _pybind11_meta_setattro in bounded_functions.o
  "_PyObject_Malloc", referenced from:
      pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in bounded_functions.o
  "_PyObject_Repr", referenced from:
      pybind11::repr(pybind11::handle) in bounded_functions.o
  "_PyObject_RichCompareBool", referenced from:
      pybind11::detail::object_api<pybind11::handle>::rich_compare(pybind11::detail::object_api<pybind11::handle> const&, int) const in partition_selection_strategies.o
  "_PyObject_SetAttr", referenced from:
      pybind11::setattr(pybind11::handle, pybind11::handle, pybind11::handle) in bounded_functions.o
  "_PyObject_SetAttrString", referenced from:
      pybind11::setattr(pybind11::handle, char const*, pybind11::handle) in bounded_functions.o
  "_PyObject_SetItem", referenced from:
      pybind11::detail::accessor_policies::generic_item::set(pybind11::handle, pybind11::handle, pybind11::handle) in bounded_functions.o
  "_PyObject_Str", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::str::raw_str(_object*) in bounded_functions.o
  "_PyProperty_Type", referenced from:
      pybind11::detail::make_static_property_type() in bounded_functions.o
      _pybind11_static_get in bounded_functions.o
      _pybind11_static_set in bounded_functions.o
      pybind11::detail::generic_type::def_property_static_impl(char const*, pybind11::handle, pybind11::handle, pybind11::detail::function_record*) in bounded_functions.o
      pybind11::detail::enum_base::init(bool, bool) in partition_selection_strategies.o
  "_PySequence_Check", referenced from:
      pybind11::sequence::check_(pybind11::handle) in bounded_functions.o
  "_PySequence_GetItem", referenced from:
      pybind11::object pybind11::detail::accessor_policies::sequence_item::get<unsigned long, 0>(pybind11::handle, unsigned long const&) in bounded_functions.o
  "_PySequence_Size", referenced from:
      pybind11::sequence::end() const in bounded_functions.o
      pybind11::sequence::size() const in bounded_functions.o
  "_PySequence_Tuple", referenced from:
      pybind11::tuple::tuple(pybind11::object const&) in bounded_functions.o
  "_PyStaticMethod_New", referenced from:
      pybind11::staticmethod::staticmethod(pybind11::object&&) in mechanism.o
  "_PyStaticMethod_Type", referenced from:
      pybind11::detail::PyStaticMethod_Check(_object*) in mechanism.o
  "_PyThreadState_Clear", referenced from:
      pybind11::gil_scoped_acquire::dec_ref() in bounded_functions.o
  "_PyThreadState_DeleteCurrent", referenced from:
      pybind11::gil_scoped_acquire::dec_ref() in bounded_functions.o
  "_PyThreadState_Get", referenced from:
      pybind11::detail::get_internals() in bounded_functions.o
  "_PyThreadState_New", referenced from:
      pybind11::gil_scoped_acquire::gil_scoped_acquire() in bounded_functions.o
  "_PyThread_tss_alloc", referenced from:
      pybind11::detail::get_internals() in bounded_functions.o
      pybind11::detail::local_internals::shared_loader_life_support_data::shared_loader_life_support_data() in bounded_functions.o
  "_PyThread_tss_create", referenced from:
      pybind11::detail::get_internals() in bounded_functions.o
      pybind11::detail::local_internals::shared_loader_life_support_data::shared_loader_life_support_data() in bounded_functions.o
  "_PyThread_tss_get", referenced from:
      pybind11::gil_scoped_acquire::gil_scoped_acquire() in bounded_functions.o
      pybind11::detail::loader_life_support::get_stack_top() in bounded_functions.o
  "_PyThread_tss_set", referenced from:
      pybind11::detail::get_internals() in bounded_functions.o
      pybind11::gil_scoped_acquire::gil_scoped_acquire() in bounded_functions.o
      pybind11::gil_scoped_acquire::dec_ref() in bounded_functions.o
      pybind11::detail::loader_life_support::set_stack_top(pybind11::detail::loader_life_support*) in bounded_functions.o
  "_PyTuple_GetItem", referenced from:
      pybind11::object pybind11::detail::accessor_policies::tuple_item::get<unsigned long, 0>(pybind11::handle, unsigned long const&) in bounded_functions.o
  "_PyTuple_New", referenced from:
      pybind11::tuple::tuple<long, 0>(long) in bounded_functions.o
      pybind11::tuple::tuple<int, 0>(int) in bounded_functions.o
      pybind11::tuple::tuple<unsigned long, 0>(unsigned long) in bounded_functions.o
  "_PyTuple_SetItem", referenced from:
      void pybind11::detail::accessor_policies::tuple_item::set<unsigned long, 0>(pybind11::handle, unsigned long const&, pybind11::handle) in bounded_functions.o
  "_PyTuple_Size", referenced from:
      pybind11::tuple::size() const in bounded_functions.o
  "_PyType_IsSubtype", referenced from:
      PyObject_TypeCheck(_object*, _typeobject*) in bounded_functions.o
      bool pybind11::detail::type_caster_generic::load_impl<pybind11::detail::type_caster_generic>(pybind11::handle, bool) in bounded_functions.o
      bool pybind11::detail::type_caster_generic::load_impl<pybind11::detail::type_caster_generic>(pybind11::handle, bool) in bounded_functions.o
      PyObject_TypeCheck(_object*, _typeobject*) in count.o
      PyObject_TypeCheck(_object*, _typeobject*) in distributions.o
      PyObject_TypeCheck(_object*, _typeobject*) in order_statistics.o
      PyObject_TypeCheck(_object*, _typeobject*) in partition_selection_strategies.o
      ...
  "_PyType_Ready", referenced from:
      pybind11::detail::make_static_property_type() in bounded_functions.o
      pybind11::detail::make_default_metaclass() in bounded_functions.o
      pybind11::detail::make_object_base_type(_typeobject*) in bounded_functions.o
      pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in bounded_functions.o
  "_PyType_Type", referenced from:
      pybind11::detail::make_static_property_type() in bounded_functions.o
      pybind11::detail::make_default_metaclass() in bounded_functions.o
      _pybind11_meta_call in bounded_functions.o
      _pybind11_meta_setattro in bounded_functions.o
      _pybind11_meta_getattro in bounded_functions.o
      _pybind11_meta_dealloc in bounded_functions.o
  "_PyUnicode_AsEncodedString", referenced from:
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
      pybind11::detail::error_fetch_and_normalize::format_value_and_trace() const in bounded_functions.o
  "_PyUnicode_AsUTF8AndSize", referenced from:
      pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::load(pybind11::handle, bool) in bounded_functions.o
  "_PyUnicode_AsUTF8String", referenced from:
      pybind11::str::operator std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>() const in bounded_functions.o
  "_PyUnicode_DecodeUTF8", referenced from:
      pybind11::detail::string_caster<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, false>::decode_utfN(char const*, long) in bounded_functions.o
  "_PyUnicode_FromFormat", referenced from:
      pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in bounded_functions.o
  "_PyUnicode_FromString", referenced from:
      pybind11::detail::make_static_property_type() in bounded_functions.o
      pybind11::detail::make_default_metaclass() in bounded_functions.o
      pybind11::detail::make_object_base_type(_typeobject*) in bounded_functions.o
      pybind11::detail::dict_getitemstring(_object*, char const*) in bounded_functions.o
      pybind11::str::str(char const*) in bounded_functions.o
      pybind11::detail::make_new_python_type(pybind11::detail::type_record const&) in bounded_functions.o
  "_PyWeakref_NewRef", referenced from:
      pybind11::weakref::weakref(pybind11::handle, pybind11::handle) in bounded_functions.o
  "_Py_GetVersion", referenced from:
      _PyInit__pydp in bindings.o
  "__PyObject_GetDictPtr", referenced from:
      pybind11::detail::clear_instance(_object*) in bounded_functions.o
      _pybind11_traverse in bounded_functions.o
      _pybind11_clear in bounded_functions.o
  "__PyThreadState_UncheckedGet", referenced from:
      pybind11::detail::get_thread_state_unchecked() in bounded_functions.o
  "__PyType_Lookup", referenced from:
      _pybind11_meta_setattro in bounded_functions.o
      _pybind11_meta_getattro in bounded_functions.o
  "__Py_Dealloc", referenced from:
      Py_DECREF(_object*) in bounded_functions.o
      Py_DECREF(_object*) in count.o
      Py_DECREF(_object*) in distributions.o
      Py_DECREF(_object*) in order_statistics.o
      Py_DECREF(_object*) in partition_selection_strategies.o
      Py_DECREF(_object*) in qunatile_tree.o
      Py_DECREF(_object*) in rand.o
      ...
  "__Py_FalseStruct", referenced from:
      pybind11::detail::type_caster<bool, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<bool, void>::cast(bool, pybind11::return_value_policy, pybind11::handle) in partition_selection_strategies.o
  "__Py_NoneStruct", referenced from:
      pybind11::none::none() in bounded_functions.o
      pybind11::detail::object_api<pybind11::handle>::is_none() const in bounded_functions.o
      pybind11::detail::object_api<pybind11::detail::accessor<pybind11::detail::accessor_policies::generic_item>>::is_none() const in partition_selection_strategies.o
  "__Py_NotImplementedStruct", referenced from:
      pybind11::cpp_function::dispatcher(_object*, _object*, _object*) in bounded_functions.o
  "__Py_TrueStruct", referenced from:
      pybind11::detail::type_caster<bool, void>::load(pybind11::handle, bool) in bounded_functions.o
      pybind11::detail::type_caster<bool, void>::cast(bool, pybind11::return_value_policy, pybind11::handle) in 
partition_selection_strategies.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Target //src/python:pydp failed to build
INFO: Elapsed time: 208.000s, Critical Path: 25.71s
INFO: 997 processes: 95 internal, 890 darwin-sandbox, 12 local.
ERROR: Build did NOT complete successfully
cp: ./bazel-bin/src/bindings/_pydp.so: No such file or directory
PainOchoco commented 1 month ago

Hey @strivn, I have the same issue as you. Have you find a way to fix it?

strivn commented 1 month ago

Hi @PainOchoco, no. I tried several things back then but couldn't find a way to make it work. I think it might be related to C++ build process in apple silicon, but unfortunately I don't have much experience in this.