@@ -141,11 +141,16 @@ def _search_library_names(
141141 lib_names .append (f"{ prefix } python{ version } { abi_flags } { shlib_suffix } " )
142142
143143 # Also search for the abi3 libraries.
144- lib_names . append ( f"{ prefix } python{ sys .version_info .major } { shlib_suffix } " )
144+ abi3_lib_names = [ f"{ prefix } python{ sys .version_info .major } { shlib_suffix } " ]
145145 if abi_flags :
146- lib_names .append (
146+ abi3_lib_names .append (
147147 f"{ prefix } python{ sys .version_info .major } { abi_flags } { shlib_suffix } "
148148 )
149+ for x in lib_names :
150+ if x and version in x :
151+ abi3_lib_names .append (x .replace (version , f"{ sys .version_info .major } " ))
152+
153+ lib_names .extend (abi3_lib_names )
149154 return list (dict .fromkeys (k for k in lib_names if k ))
150155
151156
@@ -170,6 +175,19 @@ def _get_python_library_info(base_executable) -> dict[str, Any]:
170175 config_vars .get , version , abi_flags , shlib_suffix
171176 )
172177
178+ abi3_libraries = {
179+ f"libpython{ sys .version_info .major } { abi_flags } .dynlib" ,
180+ f"libpython{ sys .version_info .major } { abi_flags } .so.1.0" ,
181+ f"libpython{ sys .version_info .major } { abi_flags } .so" ,
182+ f"python{ sys .version_info .major } { abi_flags } .dll" ,
183+ f"python{ sys .version_info .major } { abi_flags } .dynlib" ,
184+ f"libpython{ sys .version_info .major } .dynlib" ,
185+ f"libpython{ sys .version_info .major } .so.1.0" ,
186+ f"libpython{ sys .version_info .major } .so" ,
187+ f"python{ sys .version_info .major } .dll" ,
188+ f"python{ sys .version_info .major } .dynlib" ,
189+ }
190+
173191 # Found libraries
174192 static_libraries : dict [str , None ] = {}
175193 dynamic_libraries : dict [str , None ] = {}
@@ -180,13 +198,7 @@ def _get_python_library_info(base_executable) -> dict[str, Any]:
180198 for root_dir in search_directories :
181199 for libname in search_libnames :
182200 composed_path = os .path .join (root_dir , libname )
183- is_abi3_file = os .path .basename (composed_path ) in (
184- "libpython3.dynlib" ,
185- "libpython3.so.1.0" ,
186- "libpython3.so" ,
187- "python3.dll" ,
188- "python3.dynlib" ,
189- )
201+ is_abi3_file = os .path .basename (composed_path ) in abi3_libraries
190202
191203 # Check whether the library exists and add it to the appropriate list.
192204 if os .path .exists (composed_path ) or os .path .isdir (composed_path ):
0 commit comments