Usando Atlas de scipy


13

Instalé Ubuntu 12.04 64 bit. Necesito trabajar con python y scipy, los instalé y cuando ejecuto la prueba:

python -c "import scipy; scipy.test()"

Entiendo el mensaje:

ImportError: libatlas.so.3gf: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio

Sin embargo, tengo bibliotecas libatlas instaladas en el directorio /usr/lib/atlas-base. Sé que puedo copiar los archivos directamente debajo /usr/lib, pero me pregunto cómo podría configurar el scipy para usar las bibliotecas usr/lib/atlas-base.


Por favor, no cruce la publicación.
— Karlson

Ok, eliminado ahora.
— lmsasu

Respuestas:


19

No tienes que copiar nada en ningún lado.

Debe agregar las bibliotecas de atlas a la lista de ubicaciones ldque buscará.

En el directorio /etc/ld.so.conf.dpuede agregar el archivo atlas-lib.conf. Este archivo debe contener el directorio de libatlas.so.3gf, que es /usr/lib/atlas-base.

Puedes hacer esto ejecutando

echo "/usr/lib/atlas-base" | sudo tee /etc/ld.so.conf.d/atlas-lib.conf

Finalmente corre

sudo ldconfig

actualizar ldpara que sepa sobre este nuevo archivo.

Alternativamente, puede configurar LD_LIBRARY_PATHpara incluir la ruta a la biblioteca cuando ejecuta y debería estar disponible dentro de SciPy.


No estoy seguro de si el atlas-lib.conf fue de ayuda, pero el LD_LIBRARY_PATH hizo el truco.
— lmsasu

1
@lmsasu Cuando cree ese archivo, deberá ejecutarlo sudo ldconfigpara activarlo
— Karlson el

Si no tiene acceso de root, ¿cuál sería el mejor enfoque? Si lo hicieras virtualenv, ¿cómo lo harías en ese caso?
— Albert

1
@Albert Using virtualenves un tema completamente separado, pero sin acceso a la raíz, puede configurarlo LD_LIBRARY_PATHde la manera adecuada que se menciona en la respuesta.
— Karlson

Este tipo de cosas debería ser manejado por paquetes numpy / scipy o libatlas-dev, ¿no? Tengo una situación interesante donde el sistema numpy 1.9.1 funciona bien, pero numpy 1.9.2 en un virtualenv exhibe este problema. De todos modos, su solución lo arregló. Gracias.
— drevicko

1

Para mí, usando un virtualenv, export LD_LIBRARY_PATH=/usr/lib/atlas-base/:${LD_LIBRARY_PATH}al final de mi .bashrcarchivo lo arreglé.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.