lammps/lib/python
sjplimp cd14e4314d git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14593 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-02-15 15:32:27 +00:00
..
Makefile.lammps git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13252 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-03-18 21:39:32 +00:00
Makefile.lammps.python2 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13251 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-03-18 20:45:12 +00:00
Makefile.lammps.python2.7 git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14593 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-02-15 15:32:27 +00:00
README git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@13248 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-03-17 23:13:10 +00:00

README

The Makefile.lammps file in this directory is used when building
LAMMPS with its PYTHON package installed.  The file has several
settings needed to compile and link LAMMPS with the Python library.
You should choose a Makefile.lammps.* file compatible with your system
and your version of Python, and copy it to Makefile.lammps before
building LAMMPS itself.  You may need to edit one of the provided
files to match your system.

Note that is not currently possible to use the PYTHON package with
Python 3, only with Python 2.  The C API changed from Python 2 to 3
and the LAMMPS code is not compatible with both.

If you create a new Makefile.lammps file suitable for some version of
Python on some system, that is not a match to one of the provided
Makefile.lammps.* files, you can send it to the developers, and we can
include it in the distribution for others to use.

To illustrate, these are example settings from the
Makefile.lammps.python2.7 file:

python_SYSINC = -I/usr/local/include/python2.7
python_SYSLIB = -lpython2.7 -lnsl -ldl -lreadline -ltermcap -lpthread -lutil -lm
python_SYSPATH = 

python_SYSINC refers to the directory where Python's Python.h file is
found.  LAMMPS includes this file.

python_SYSLIB refers to the libraries needed to link to from an
application (LAMMPS in this case) to "embed" Python in the
application.  The Python library itself is listed (-lpython2.7) are
are several system libraries needed by Python.

python_SYSPATH = refers to the path (e.g. -L/usr/local/lib) where the
Python library can be found.  You may not need this setting if the
path is already included in your LD_LIBRARY_PATH environment variable.

-------------------------

Note that the trickiest issue to figure out for inclusion in
Makefile.lammps is what system libraries are needed by your Python to
run in embedded mode on your machine.

Here is what this Python doc page says about it:

https://docs.python.org/2/extending/embedding.html#compiling-and-linking-under-unix-like-systems

"It is not necessarily trivial to find the right flags to pass to your
compiler (and linker) in order to embed the Python interpreter into
your application, particularly because Python needs to load library
modules implemented as C dynamic extensions (.so files) linked against
it.

To find out the required compiler and linker flags, you can execute
the pythonX.Y-config script which is generated as part of the
installation process (a python-config script may also be available)."

It then gives examples of how to use the pythonX.Y-config script
and further instructions for what to do if that doesn't work.