diff --git a/python/lammps/mliap/__init__.py b/python/lammps/mliap/__init__.py index 57fe97d803..cfe3fb6b38 100644 --- a/python/lammps/mliap/__init__.py +++ b/python/lammps/mliap/__init__.py @@ -4,17 +4,29 @@ # try to improperly start up a new interpreter. import sysconfig import ctypes -library = sysconfig.get_config_vars('INSTSONAME')[0] +import platform + +py_ver = sysconfig.get_config_vars('VERSION')[0] +OS_name = platform.system() + +if OS_name == "Linux": + SHLIB_SUFFIX = '.so' + library = 'libpython' + py_ver + SHLIB_SUFFIX +elif OS_name == "Darwin": + SHLIB_SUFFIX = '.dylib' + library = 'libpython' + py_ver + SHLIB_SUFFIX +elif OS_name == "Windows": + SHLIB_SUFFIX = '.dll' + library = 'python' + py_ver + SHLIB_SUFFIX + try: pylib = ctypes.CDLL(library) -except OSError as e: - if pylib.endswith(".a"): - pylib.strip(".a") + ".so" - pylib = ctypes.CDLL(library) - else: - raise e +except Exception as e: + raise OSError("Unable to locate python shared library") from e + if not pylib.Py_IsInitialized(): raise RuntimeError("This interpreter is not compatible with python-based mliap for LAMMPS.") + del sysconfig, ctypes, library, pylib from .loader import load_model, activate_mliappy