Trouble compiling NWChem with python support


Gets Around
Summary: I compiled NWChem-src-2014-01-28 including python support, I think, but when I run NWChem with a python statement in the input file, the output file indicates an error "python_input is not in this build of NWChem"
Details: CentOS 6.5 64-bit; make v 4.0; running as a VMware Workstation virtual machine in Win 8.1 Pro. NWChem without python statement runs normally. Simple python scripts work properly.
Environment variables set:
export NWCHEM_TOP=/usr/local/nwchem-6.3
export NWCHEM_TARGET=LINUX64
export USE_MPI=y
export USE_MPIF=y
export LIBMPI="-pthread -m64 -lmpi_f90 -lmpi_f77 -lmpi -ldl"
export MPI_LOC=/usr/lib64/openmpi
export MPI_LIB=/usr/lib64/openmpi/lib
export MPI_INCLUDE=/usr/include/openmpi-x86_64
export NWCHEM_MODULES=all python
export PYTHONHOME=/usr/lib64/python2.6
export PYTHONVERSION=2.6
export USE_PYTHON64=y
export LARGE_FILES=TRUE
export MRCC_THEORY=TRUE
export USE_NOFSCHECK=TRUE
export FC=gfortran
export CC=gcc

Compiled with
make nwchem_config
make >& make.log


Make.log contains the following lines. These contain the only occurrences of the term "python":
checking for python... /usr/bin/python
checking for python version... 'import site' failed; use -v for traceback
2.6
checking for python platform... 'import site' failed; use -v for traceback
linux2
checking for python script directory... ${prefix}/lib/python2.6/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.6/site-packages


Any hints about how to get python working inside Nwchem 6.3?

Gets Around
Try putting quotes around the NWCHEM_MODULES values like you did for LIBMPI, e.g.

export NWCHEM_MODULES="all python"

Gets Around
duplicate

Gets Around
Thanks Mernst. You're correct: I left out the quotes, which are clearly shown in the INSTALL directions.
However, still no luck. From the make.log it looks like now it cannot find python2.6 or the Python.h file.
What should "PYTHON_HOME" really be set to? The directory that contains python2.6 executable? (This is /usr/bin in CentOS 6.5)
The Python.h file and other .h files are located in the /usr/include/python2.6 directory.
Any suggestions?
John K.

Gets Around
I think you want to set PYTHONHOME =/usr on your system. In the generated makefile.h the library location is actually

$(PYTHONHOME)/lib64/python$(PYTHONVERSION)/config/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)


Once you set PYTHONHOME to /usr that should expand to

/usr/lib64/python2.6/config/libpython2.6.a


If that .a file actually exists on your system you should be fine; otherwise you may have to hack makefile.h after it is generated. I have to alter the Python library location in makefile.h after it is generated on newer Ubuntu and Debian systems because the library directory layout no longer matches what NWChem expects.

Another thing I noticed: you have EXPORT MRCC_THEORY=TRUE like the Compiling NWchem wiki page tells you: http://nwchemgit.github.io/index.php/Compiling_NWChem

That wiki page is in error. If you want MRCC capabilities you need to set MRCC_METHODS instead of MRCC_THEORY, like it says (correctly) in the MRCC section of the TCE documentation: http://nwchemgit.github.io/index.php/Release64:TCE


Forum >> NWChem's corner >> Compiling NWChem