75 lines
2.8 KiB
Plaintext
75 lines
2.8 KiB
Plaintext
"Higher level section"_Python_head.html - "LAMMPS WWW Site"_lws -
|
|
"LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
|
|
|
:link(lws,http://lammps.sandia.gov)
|
|
:link(ld,Manual.html)
|
|
:link(lc,Commands_all.html)
|
|
|
|
:line
|
|
|
|
Installing LAMMPS in Python :h3
|
|
|
|
For Python to invoke LAMMPS, there are 2 files it needs to know about:
|
|
|
|
python/lammps.py
|
|
src/liblammps.so :ul
|
|
|
|
Lammps.py is the Python wrapper on the LAMMPS library interface.
|
|
Liblammps.so is the shared LAMMPS library that Python loads, as
|
|
described above.
|
|
|
|
You can insure Python can find these files in one of two ways:
|
|
|
|
set two environment variables
|
|
run the python/install.py script :ul
|
|
|
|
If you set the paths to these files as environment variables, you only
|
|
have to do it once. For the csh or tcsh shells, add something like
|
|
this to your ~/.cshrc file, one line for each of the two files:
|
|
|
|
setenv PYTHONPATH $\{PYTHONPATH\}:/home/sjplimp/lammps/python
|
|
setenv LD_LIBRARY_PATH $\{LD_LIBRARY_PATH\}:/home/sjplimp/lammps/src :pre
|
|
|
|
If you use the python/install.py script, you need to invoke it every
|
|
time you rebuild LAMMPS (as a shared library) or make changes to the
|
|
python/lammps.py file.
|
|
|
|
You can invoke install.py from the python directory as
|
|
|
|
% python install.py \[libdir\] \[pydir\] :pre
|
|
|
|
The optional libdir is where to copy the LAMMPS shared library to; the
|
|
default is /usr/local/lib. The optional pydir is where to copy the
|
|
lammps.py file to; the default is the site-packages directory of the
|
|
version of Python that is running the install script.
|
|
|
|
Note that libdir must be a location that is in your default
|
|
LD_LIBRARY_PATH, like /usr/local/lib or /usr/lib. And pydir must be a
|
|
location that Python looks in by default for imported modules, like
|
|
its site-packages dir. If you want to copy these files to
|
|
non-standard locations, such as within your own user space, you will
|
|
need to set your PYTHONPATH and LD_LIBRARY_PATH environment variables
|
|
accordingly, as above.
|
|
|
|
If the install.py script does not allow you to copy files into system
|
|
directories, prefix the python command with "sudo". If you do this,
|
|
make sure that the Python that root runs is the same as the Python you
|
|
run. E.g. you may need to do something like
|
|
|
|
% sudo /usr/local/bin/python install.py \[libdir\] \[pydir\] :pre
|
|
|
|
You can also invoke install.py from the make command in the src
|
|
directory as
|
|
|
|
% make install-python :pre
|
|
|
|
In this mode you cannot append optional arguments. Again, you may
|
|
need to prefix this with "sudo". In this mode you cannot control
|
|
which Python is invoked by root.
|
|
|
|
Note that if you want Python to be able to load different versions of
|
|
the LAMMPS shared library (see "this section"_Python_shlib.html), you will
|
|
need to manually copy files like liblammps_g++.so into the appropriate
|
|
system directory. This is not needed if you set the LD_LIBRARY_PATH
|
|
environment variable as described above.
|