From 21a5b4e735be64f1c7f28b10c933107f572dcc20 Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 15 Nov 2024 08:30:33 -0800 Subject: [PATCH] fix library-loading issues in editable installs --- .github/workflows/pr.yaml | 1 + python/libkvikio/libkvikio/load.py | 12 +++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index fb439d8751..613b135035 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -104,6 +104,7 @@ jobs: build_command: | sccache -z; build-all --verbose; + python -c "import kvikio; print(kvikio.__version__)"; sccache -s; wheel-cpp-build: secrets: inherit diff --git a/python/libkvikio/libkvikio/load.py b/python/libkvikio/libkvikio/load.py index 2cca4b5fdc..8856923eaf 100644 --- a/python/libkvikio/libkvikio/load.py +++ b/python/libkvikio/libkvikio/load.py @@ -63,9 +63,15 @@ def load_library(): # Prefer the libraries bundled in this package. If they aren't found # (which might be the case in builds where the library was prebuilt # before packaging the wheel), look for a system installation. - libkvikio_lib = _load_wheel_installation(soname) - if libkvikio_lib is None: - libkvikio_lib = _load_system_installation(soname) + try: + libkvikio_lib = _load_wheel_installation(soname) + if libkvikio_lib is None: + libkvikio_lib = _load_system_installation(soname) + except OSError: + # If none of the searches above succeed, just silently return None + # and rely on other mechanisms (like RPATHs on other DSOs) to + # help the loader find the library. + pass # The caller almost never needs to do anything with this library, but no # harm in offering the option since this object at least provides a handle