import numpy загружает разделяемые библиотеки blas в другие модули
У нас есть библиотека, связанная модулем Cython (core.so). Он использует BLAS, но он компилируется с опциями -undefined, динамического поиска в надежде, что BLAS будет загружен во время выполнения.
В Enthought Python Distribution отлично работает следующее решение:
import numpy #This apparently loads the shared BLAS library
import core
Мы попробовали это на ''vanilla'' дистрибутиве Python в Ubuntu 10.04 с numpy, установленным через apt-get (и liblapack-dev, libblas-dev, установленным таким же образом). Не находит библиотеку BLAS. Как мы можем заставить его работать так же, как в EPD?
ОБНОВЛЕНИЕ:
Это сделано для того, чтобы получить тот же BLAS, что и в NumPy. Например, на Mac OS X box EPD снова компилируется MKL и работает намного быстрее, чем доступный BLAS (Accelerate Framework).
Выход из numpy.show_config()
является:
blas_info:
libraries = ['blas']
library_dirs = ['/usr/lib64']
language = f77
lapack_info:
libraries = ['lapack']
library_dirs = ['/usr/lib64']
language = f77
atlas_threads_info:
NOT AVAILABLE
blas_opt_info:
libraries = ['blas']
library_dirs = ['/usr/lib64']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_blas_threads_info:
NOT AVAILABLE
lapack_opt_info:
libraries = ['lapack', 'blas']
library_dirs = ['/usr/lib64']
language = f77
define_macros = [('NO_ATLAS_INFO', 1)]
atlas_info:
NOT AVAILABLE
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
atlas_blas_info:
NOT AVAILABLE
mkl_info:
NOT AVAILABLE