El método numpy.show_config()(o numpy.__config__.show()) genera información sobre la vinculación recopilada en el momento de la compilación. Mi salida se ve así. Creo que significa que estoy usando BLAS / LAPACK que viene con Mac OS.
>>> import numpy as np
>>> np.show_config()
lapack_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3']
define_macros = [('NO_ATLAS_INFO', 3)]
blas_opt_info:
extra_link_args = ['-Wl,-framework', '-Wl,Accelerate']
extra_compile_args = ['-msse3', '-I/System/Library/Frameworks/vecLib.framework/Headers']
define_macros = [('NO_ATLAS_INFO', 3)]
numpy.__config__realmente debería ser una API pública. No obstante, ganas esta ronda, davost .lapack_opt_infose muestra significa que numpy está vinculado con lapack?numpy.show_config(), que probablemente sea una función API pública en virtud de la ausencia de guiones bajos iniciales. Pero no está documentado en línea y no tiene una cadena de documentación, por lo que no es sorprendente que sea tan difícil de encontrar. Esperemos que arreglen eso.Lo que está buscando es esto: información del sistema
Compilé numpy / scipy con atlas y puedo verificar esto con:
Consulte la documentación para más comandos.
fuente
sysinfo.get_info('atlas')no me devolvió nada, perosysinfo.get_info('blas')regresó{'include_dirs': ['/usr/local/include', '/usr/include', '/opt/local/include', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/include'], 'libraries': ['blas', 'blas'], 'library_dirs': ['/usr/lib']}ysysinfo.get_info('lapack')regresó{'language': 'f77', 'libraries': ['lapack', 'lapack'], 'library_dirs': ['/usr/lib']}¿Qué significa?Como utiliza las versiones cargadas dinámicamente, puede hacer esto:
dónde
anyoftheCmodules.sopodría estar, por ejemplonumpy/core/_dotblas.so, a qué enlaceslibblas.so.fuente
numpy/core/_dotblas.so? (ver comentario debajo de la respuesta de talonmies).soarchivos allí. Simplemente busque dentro del directorio NumPy (digamos, usandofind /path/to/numpy -name "*.so"). Un par de ellos (_dotblas.so,lapack_lite.sobajo un precompilado de Ubuntu, por ejemplo) hacen uso de BLAS / LAPACK_dotblas.soya no existe en v1.10 numpy y más reciente , pero se puede comprobar la vinculación demultiarray.solugarnumpy.__config__objeto canónico en tiempo de ejecución. (Ver la excelente respuesta de davost .)Puede usar la herramienta de dependencia del cargador de enlaces para ver los componentes de enlace de nivel C de su compilación y ver si tienen dependencias externas en su blas y paquete de opciones. No estoy cerca de una caja de Linux en este momento, pero en una máquina con OS X puede hacer esto dentro del directorio de paquetes del sitio que contiene las instalaciones:
sustituya
ldden lugar deotoolen un sistema gnu / Linux y debería obtener las respuestas que necesita.fuente
numpy/core/_dotblas.so? (ver comentario debajo de la respuesta de Ricardos)_dotblas.soenvoltura de interfaz para cualquier blas que se haya utilizado para construir la distribución. En Windows se llamará_dotblas.pyd, pero la función es la misma._dotblas.sosolo se crea si está utilizando una[atlas]sección ensite.cfg(y una biblioteca BLAS habilitada para CBLAS). Por lo tanto, debe usar eso, incluso si no está usando ATLAS (excepto cuando está usando Intel MKL, que tiene una sección dedicada)._dotblas.soya no existe en v1.10 numpy y más reciente , pero se puede comprobar la vinculación demultiarray.solugarPuede mostrar enlaces BLAS, LAPACK, MKL usando
show_config():Lo que para mí da salida:
fuente
('HAVE_CBLAS', None)]?HAVE_CBLASse está definiendo pero no tiene valor (piense en C:)#define HAVE_CBLAS. No necesita un valor ya que solo se usa como bandera. Lo interpretaría comoHAVE_CBLAS=True. Si no tuviera CBLAS, no tendría la tupla allí en absoluto.Si instaló anaconda-navigator (en www.anaconda.com/anaconda/install/ para linux, Windows o macOS), se instalarán blas, scipy y numpy y podrá verlos haciendo clic en la pestaña de entornos en el lado izquierdo de la página de inicio del navegador página (busque cada directorio en orden alfabético). La instalación de anaconda completa (a diferencia de miniconda o paquetes individuales) se encargará de instalar muchos de los paquetes esenciales necesarios para la ciencia de datos.
fuente