#!/usr/bin/env python # copy LAMMPS src/liblammps.so and lammps.py to system dirs instructions = """ Syntax: python install.py [-h] [pydir] pydir = target dir for lammps.py and liblammps.so default = Python site-packages dir """ import sys,os,commands if (len(sys.argv) > 1 and sys.argv[1] == "-h") or len(sys.argv) > 2: print instructions sys.exit() if len(sys.argv) == 2: pydir = sys.argv[1] else: pydir = "" # copy lammps.py to pydir if it exists # if pydir not specified, install in site-packages via distutils setup() if pydir: if not os.path.isdir(pydir): print "ERROR: pydir %s does not exist" % pydir sys.exit() str = "cp ../python/lammps.py %s" % pydir print str outstr = commands.getoutput(str) if len(outstr.strip()): print outstr str = "cp ../src/liblammps.so %s" % pydir print str outstr = commands.getoutput(str) sys.exit() print "installing lammps.py in Python site-packages dir" os.chdir('../python') # in case invoked via make in src dir # extract version string from header fp = open('../src/version.h','r') txt=fp.read().split('"')[1].split() verstr=txt[0]+txt[1]+txt[2] fp.close() from distutils.core import setup from distutils.sysconfig import get_python_lib import site tryuser=False try: sys.argv = ["setup.py","install"] # as if had run "python setup.py install" setup(name = "lammps", version = verstr, author = "Steve Plimpton", author_email = "sjplimp@sandia.gov", url = "http://lammps.sandia.gov", description = "LAMMPS molecular dynamics library", py_modules = ["lammps"], data_files = [(get_python_lib(), ["../src/liblammps.so"])]) except: tryuser=True print "Installation into global site-packages dir failed.\nTrying user site dir %s now." % site.USER_SITE if tryuser: try: sys.argv = ["setup.py","install","--user"] # as if had run "python setup.py install --user" setup(name = "lammps", version = verstr, author = "Steve Plimpton", author_email = "sjplimp@sandia.gov", url = "http://lammps.sandia.gov", description = "LAMMPS molecular dynamics library", py_modules = ["lammps"], data_files = [(site.USER_SITE, ["../src/liblammps.so"])]) except: print "Installation into user site package dir failed.\nGo to ../python and install manually."