forked from lijiext/lammps
90 lines
2.6 KiB
Python
90 lines
2.6 KiB
Python
#!/usr/bin/env python
|
|
|
|
# copy LAMMPS src/liblammps.so and lammps.py to system dirs
|
|
|
|
from __future__ import print_function
|
|
|
|
instructions = """
|
|
Syntax: python install.py [-h] [pydir]
|
|
pydir = target dir for lammps.py and liblammps.so
|
|
default = Python site-packages dir
|
|
"""
|
|
|
|
import sys,os,shutil
|
|
|
|
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)
|
|
try:
|
|
shutil.copyfile("../python/lammps.py", os.path.join(pydir,'lammps.py') )
|
|
except shutil.Error:
|
|
pass # source and destination are identical
|
|
|
|
str = "cp ../src/liblammps.so %s" % pydir
|
|
print(str)
|
|
try:
|
|
shutil.copyfile("../src/liblammps.so", os.path.join(pydir,"liblammps.so") )
|
|
except shutil.Error:
|
|
pass # source and destination are identical
|
|
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.")
|
|
|
|
|
|
|