load lammps shared object for directory in LD_LIBRARY_PATH, if not found in same directory than lammps.py
This commit is contained in:
@ -39,16 +39,20 @@ class lammps:
|
|||||||
|
|
||||||
modpath = dirname(abspath(getsourcefile(lambda:0)))
|
modpath = dirname(abspath(getsourcefile(lambda:0)))
|
||||||
|
|
||||||
# load liblammps.so by default
|
# load liblammps.so unless name is given.
|
||||||
# if name = "g++", load liblammps_g++.so
|
# e.g. if name = "g++", load liblammps_g++.so
|
||||||
|
# try loading the LAMMPS shared object from the location
|
||||||
|
# of lammps.py with an absolute path (so that LD_LIBRARY_PATH
|
||||||
|
# does not need to be set for regular installations.
|
||||||
|
# fall back to loading with a relative path, which typically
|
||||||
|
# requires LD_LIBRARY_PATH to be set appropriately.
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if not name: self.lib = CDLL(join(modpath,"liblammps.so"),RTLD_GLOBAL)
|
if not name: self.lib = CDLL(join(modpath,"liblammps.so"),RTLD_GLOBAL)
|
||||||
else: self.lib = CDLL(join(modpath,"liblammps_%s.so" % name),RTLD_GLOBAL)
|
else: self.lib = CDLL(join(modpath,"liblammps_%s.so" % name),RTLD_GLOBAL)
|
||||||
except:
|
except:
|
||||||
type,value,tb = sys.exc_info()
|
if not name: self.lib = CDLL("liblammps.so",RTLD_GLOBAL)
|
||||||
traceback.print_exception(type,value,tb)
|
else: self.lib = CDLL("liblammps_%s.so" % name,RTLD_GLOBAL)
|
||||||
raise OSError,"Could not load LAMMPS dynamic library from %s" % modpath
|
|
||||||
|
|
||||||
# if no ptr provided, create an instance of LAMMPS
|
# if no ptr provided, create an instance of LAMMPS
|
||||||
# don't know how to pass an MPI communicator from PyPar
|
# don't know how to pass an MPI communicator from PyPar
|
||||||
|
|||||||
Reference in New Issue
Block a user