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
If your PATH environmental variable is configure to include $HOME/bin, 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
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
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. 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
This requires that numpy already be installed and that LAPACK library are setup as in the numpy section. Before beginning the scipy installation, 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
Once the build has been successfully completed, its time to install and test scipy
$ python setup.py install $ cd ~ $ python $ import scipy $ scipy.test()
which did not work :(
FAILED (KNOWNFAIL=13, SKIP=41, failures=2) Out[2]: <nose.result.TextTestResult run=5101 errors=0 failures=2>