From b1e071ba909642a83577ecf0e0ec199d872e370e Mon Sep 17 00:00:00 2001 From: Walid Boussafa Date: Wed, 27 Aug 2025 18:28:03 +0100 Subject: [PATCH] fix glib prefix on windows --- pyvips/__init__.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pyvips/__init__.py b/pyvips/__init__.py index 90032f1..024fa81 100644 --- a/pyvips/__init__.py +++ b/pyvips/__init__.py @@ -10,16 +10,16 @@ # user code can override this null handler logger.addHandler(logging.NullHandler()) -def library_name(name, abi_number): +def library_name(name, abi_number, lib_prefix='lib'): is_windows = os.name == 'nt' is_mac = sys.platform == 'darwin' if is_windows: - return f'lib{name}-{abi_number}.dll' + return f'{lib_prefix}{name}-{abi_number}.dll' elif is_mac: - return f'lib{name}.{abi_number}.dylib' + return f'{lib_prefix}{name}.{abi_number}.dylib' else: - return f'lib{name}.so.{abi_number}' + return f'{lib_prefix}{name}.so.{abi_number}' # pull in our module version number from .version import __version__ @@ -103,8 +103,13 @@ def library_name(name, abi_number): is_unified = False if not is_unified: - glib_lib = ffi.dlopen(library_name('glib-2.0', 0)) - gobject_lib = ffi.dlopen(library_name('gobject-2.0', 0)) + try: + glib_lib = ffi.dlopen(library_name('glib-2.0', 0)) + gobject_lib = ffi.dlopen(library_name('gobject-2.0', 0)) + except Exception: + # on windows glib maybe named glib-2.0-0.dll instead of libglib-2.0-0.dll + glib_lib = ffi.dlopen(library_name('glib-2.0', 0, lib_prefix='')) + gobject_lib = ffi.dlopen(library_name('gobject-2.0', 0, lib_prefix='')) logger.debug('Loaded lib %s', glib_lib) logger.debug('Loaded lib %s', gobject_lib)