From 2d3504ff0f006793e4ac0bbc80b0193b7a612b00 Mon Sep 17 00:00:00 2001 From: chemshift Date: Sun, 7 Aug 2022 22:54:59 -0600 Subject: [PATCH] Locate correct dynamics library directories in Anaconda Environments --- python/lammps/mliap/__init__.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/python/lammps/mliap/__init__.py b/python/lammps/mliap/__init__.py index 57fe97d803..321594ad6d 100644 --- a/python/lammps/mliap/__init__.py +++ b/python/lammps/mliap/__init__.py @@ -4,17 +4,35 @@ # try to improperly start up a new interpreter. import sysconfig import ctypes -library = sysconfig.get_config_vars('INSTSONAME')[0] +import platform + +library_dir = sysconfig.get_config_vars('LIBDIR')[0] +library_name = sysconfig.get_config_vars('LIBRARY')[0] +library = library_dir + "/" + library_name + +OS_name = platform.system() + +if OS_name == "Linux": + SHLIB_SUFFIX = '.so' +elif OS_name == "Darwin": + SHLIB_SUFFIX = '.dylib' +elif OS_name == "Windows": + SHLIB_SUFFIX = '.dll' +else: + SHLIB_SUFFIX = sysconfig.get_config_vars('SHLIB_SUFFIX') + try: pylib = ctypes.CDLL(library) except OSError as e: - if pylib.endswith(".a"): - pylib.strip(".a") + ".so" + if library.endswith(".a"): + library = library.strip(".a") + ".so" pylib = ctypes.CDLL(library) else: raise 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