2.3 Edición de setup.py

El proceso de instalación consta de una sola parte dependiente en su totalidad de la correcta configuración del archivo setup.py. En este archivo deberemos establecer la ubicación de los directorios de inclusión, y las librerías necesarias (comentadas en el apartado anterior) para el correcto enlazado y obtener así la librería compartida _pycalapack.so.

Por tanto, en el archivo setup.py deberemos modificar el valor de las ubicaciones de las librerías necesarias y el nombre de las mismas. Por defecto, en su distribución actual el valor de las mismas es el siguiente:

library_dirs_list=['./BUILD','/usr/local/BLACS/BLACS_PYTHON/LIB',
			'/usr/local/mpich/lib','/usr/lib',
		'/usr/local/SCALAPACK/SCALAPACK/'
		]
libraries_list = [
    'scalapack',
    'blacsF77init_MPI-LINUX-0',
    'blacs_MPI-LINUX-0',
    'blacsF77init_MPI-LINUX-0',
    'blacsCinit_MPI-LINUX-0',
    'blacs_MPI-LINUX-0',
    'blacsCinit_MPI-LINUX-0',
    'blas',
    'mpich',
    'g2c']

Se ha de observar que library_dirs_list establece la ubicación o path donde el compilador buscará las librerías indicadas en libraries_list. Se ha de tener en cuenta, que el nombre del archivo que el compilador busca (mediante el parámetro -lscalapack) será libscalapack.a. Es decir, el nombre de los ficheros de librerías deberán comenzar por ``lib'' y terminar en ``.a'', donde este prefijo y sufijo no son indicados en la lista libraries_list.

En este punto se desea destacar que librerías como blacsCinit_MPI-LINUX-0 aparecen repetidas veces en el listado. Esto se debe al propio proceso de enlazado y es necesario para una correcta construcción del objeto final.

Por otro lado en el proceso de compilación que realizará Python mediante distutils también deberemos indicar la ubicación de los archivos de inclusión y cabeceras referenciados en el código fuente de la distribución. La indicación de las ubicaciones de los archivos de inclusión se realiza mediante el listado:

include_dirs_list = ['./SRC','/usr/local/mpich/include']
Una vez modificado el archivo con los valores adecuados se puede proceder a la ejecución de la construcción del paquete mediante el comando descrito en el apartado anterior.

python setup.py build

y si este proceso finaliza correctamente, un usuario con permisos de administrador podrá instalar el paquete en el sistema mediante:

python setup.py install

See Sobre este documento... para sugerencias en cambios.