Error al instalar scikits.audiolab al usar python setup.py egg_info

Estoy intentando instalar scikits.audiolab usando la herramienta pip. Pip parece ejecutar el comando python setup.py egg_info desde el directorio de origen de scikits.audiolab. Cuando lo hace, me sale este error:

 Andrews-MacBook-Pro-2:scikits.audiolab-0.11.0 andrewhannigan$ pip install scikits.audiolab Collecting scikits.audiolab Using cached scikits.audiolab-0.11.0.tar.gz Complete output from command python setup.py egg_info: Traceback (most recent call last): File "", line 20, in  File "/private/var/folders/xb/qwlsm44s1wxfr82kytrgjtl80000gn/T/pip-build-vSZaU8/scikits.audiolab/setup.py", line 32, in  from numpy.distutils.core import setup ImportError: No module named numpy.distutils.core ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/xb/qwlsm44s1wxfr82kytrgjtl80000gn/T/pip-build-vSZaU8/scikits.audiolab 

El problema es claramente que no se puede importar numpy.distutils.core . En cuanto a la secuencia de comandos setup.py, esta importación ocurre desde el principio (en la parte inferior del fragmento de código a continuación):

 #! /usr/bin/env python # Last Change: Fri Mar 27 05:00 PM 2009 J # Copyright (C) 2006-2007 Cournapeau David  # # This library is free software; you can redistribute it and/or modify it under # the terms of the GNU Lesser General Public License as published by the Free # Software Foundation; either version 2.1 of the License, or (at your option) any # later version. # # This library is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # details. # # You should have received a copy of the GNU Lesser General Public License along # with this library; if not, write to the Free Software Foundation, Inc., 51 # Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # TODO: # - check how to handle cmd line build options with distutils and use # it in the building process from os.path import join import os import sys # The following is more or less random copy/paste from numpy.distutils ... import setuptools from distutils.errors import DistutilsError from numpy.distutils.core import setup 

Lo extraño es que si ejecuto el fragmento anterior del script setup.py a través de python setup.py , no obtengo el error de importación. ¿Cómo afecta el argumento de la línea de comandos egg_info a la forma en que se ejecuta setup.py y por qué de repente hace que Python no pueda importar desde numpy.distutils.core ?

Hay un problema en el archivo setup.py . Echa un vistazo a https://github.com/cournape/audiolab/blob/master/setup.py :

 import os # The following is more or less random copy/paste from numpy.distutils ... import setuptools from numpy.distutils.core import setup 

Lo primero que hace es importar desde numpy . Si no está instalado numpy , se garantiza que esto fallará con el error de importación que compartió.

Sospecho que entre su bash fallido de instalación y su instalación exitosa, instaló numpy manualmente con pip install numpy . Es poco probable que egg_info tenido algo que ver con eso.

Aquí hay una demostración de cómo solucionar este problema, tomada de scipy proyecto setup.py :

 def setup_package(): ... build_requires = [] try: import numpy except: build_requires = ['numpy'] metadata = dict( ... setup_requires = build_requires, install_requires = build_requires, )