This is an old revision of the document!
Before following this guide read through the README file located in the Python Source Install Folder. Also it recommended to make use of temporary or scratch directory to do all the compilation in (i.e. ~/scratch or /tmp/$USER), as to save disk space in your home directory. This guide assumes GCC 4.6.2 has been installed in your home directory as in Compiling GCC from Source. Ensure that the following lines at the end of your ./bashrc file
export LD_LIBRARY_PATH=$HOME/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$HOME/lib64:$LD_LIBRARY_PATH export PATH=$HOME/bin:$PATH export LDFLAGS="-L$HOME/lib64 -L$HOME/lib" export CPPFLAGS="-I$HOME/include -L$HOME/lib64 -L$HOME/lib" export CXXFLAGS=$CPPFLAGS export F77=gfortran
log out and in again,
$ gcc --version gcc (GCC) 4.6.2
Before compiling Python, the zlib library needs to installed.
$ cd ~/scratch $ wget http://zlib.net/zlib-1.2.6.tar.gz $ tar -xf zlib-1.2.6.tar.gz $ cd zlib-1.2.6 $ make
Test it!
$ make check
Install if all tests passes
$ make install
$ cd ~/scratch $ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz $ tar -xf Python-2.7.3.tgz
$ cd ~/scratch/Python-2.7.3.tgz $ mkdir BUILD $ cd BUILD $ ../configure --prefix=$HOME
$ make
If errors occur such as
wait a while and then make again, as the process was killed by the usage limiter which runs on the login node. If nessary try the approach shown in Compiling GCC from Source.
$ make test
No news is good news: If this test command completes with out an error you know that Python has been compiled successfully.
$ make install
Add the following to the end of your .bashrc file
# Python 2.7.3 installed in home directory PYTHONPATH=~/lib/python:~/lib/python2.7/site-packages/
Log in and out, then
$ python Python 2.7.3 (default, Apr 12 2012, 12:03:56) [GCC 4.6.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
Before beginning make sure bash environmental variables do not cause a conflict
unset CPPFLAGS unset LDFLAGS
$ cd ~/scratch $ wget http://archive.ipython.org/release/0.12/ipython-0.12.tar.gz $ tar -xf ipython-0.12.tar.gz $ cd ipython-0.12 $ python setup.py install --prefix=$HOME
provided your $HOME/bin in your PATH variable, ipython should now be available
$ cd ~/scratch $ wget http://pypi.python.org/packages/source/n/nose/nose-1.1.2.tar.gz#md5=144f237b615e23f21f6a50b2183aa817 $ tar -xf nose-1.1.2.tar.gz $ cd nose-1.1.2 $ python setup.py install --prefix=$HOME
Before beginning compile the LAPACK and BLAS librariess as in Compiling Octave 3.4.3 from Source, and copy libraries to $HOME.lib:
$lapack-3.4.0> cp lib* $HOME/lib
Download the last version of numpy source, in your scratch folder. Extract it, run python setup.py install –prefix=$HOME. Then test it (note this requires nose)
$ cd ~ $ ipython $ import numpy $ numy.test()
Download latest version from source forge (version 1.1 in this case) $ cd $MATPLOTLIB_FOLDER $ python setup.py install # --prefix=$HOME is not required as this option used to install python itself
Based on the guide found on a Scipy installation website, the following needs to be done
$ cd ~/scratch $ wget http://netlib.org/atlas/atlas3.6.0.tgz $ tar -xf http://netlib.org/atlas/atlas3.6.0.tgz $ cd ATLAS $ make
Follow the instructions, remember that compiled atlas is required to run on multiple x64 artichetures depending upon the partition the MOAB job manager submits the job: So dont tune the codes to use artitecture specfic features on the login node. You should also recieve performance warnings, i ignored these as an 80% efficient ATLAS is acceptable for my needs.
The make file produced (Make.Linux_HAMMER64SSE2) after running make, requires one or two tweaks, i did the following
then beginning with make (this will take a couple of hours)
$ make install arch=Linux_HAMMER64SSE2
There is a version of ATLAS already compiled under /opt/gridware/utils/, which can be located using the find command as follows
$ find /opt/gridware/utils/ -name libatlas.a
I suspect these ATLAS libraries are compiled using the GCC 4.1.2 20070115 (SUSE Linux) compilers, and as such wont be compatible with GCC 4.6 compilers.
Before beginning the scipy installation, make sure numpy is installed, and clear some possibly conflicting bash environmental variables
unset CPPFLAGS LDFLAGS
Then
$ cd ~/scratch $ wget http://tenet.dl.sourceforge.net/project/scipy/scipy/0.10.1/scipy-0.10.1.tar.gz $ tar -xf scipy-0.10.1.tar.gz $ cd scipy-0.10.1/ $ export ATLAS=~/scratch/ATLAS/lib/Linux_HAMMER64SSE2/ $ python setup.py build