Por que recebo o ImportError ao tentar importar o módulo Pandas Python?

6

Eu instalei o módulo Pandas para o Python 2.7 usando apt-get . No entanto, quando tento importar o módulo, ele gera um ImportError :

 import pandas as pd
 File "/usr/lib/pymodules/python2.7/pandas/__init__.py", line 15, in <module>
    raise ImportError('ImportError: C extensions not built: if you installed already verify that you are not importing from the source directory')

A chamada em /usr/lib/pymodules/python2.7/pandas/__init__.py é:

import pandas.lib as lib
except Exception:  # pragma: no cover
    import sys
    e = sys.exc_info()[1] # Py25 and Py3 current exception syntax conflict
    if 'No module named' in str(e):
        raise ImportError('C extensions not built: if you installed already '
                          'verify that you are not importing from the source '
                          'directory')
    else:
        raise

Por que recebo ImportError e como resolvo isso?

A seguir é o que eu recebo ao tentar importar as dependências do Pandas em um shell interativo do Python:

>>> import numpy as np
>>> import dateutil
>>> import pytz
>>> import numexpr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named numexpr
>>> import bottleneck
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named bottleneck
    
por user268000 12.04.2014 / 00:13

2 respostas

2

A seguir estão as dependências para os Pandas :

  • NumPy
  • python-dateutil
  • pytz

E o projeto Pandas lista os dois a seguir como dependências altamente recomendadas :

  • numexpr
  • gargalo

Parece que apt-get instalou apenas as dependências necessárias e não as altamente recomendadas; como tal, você recebe um ImportError ao tentar importar numexpr e bottleneck . A instalação desses módulos provavelmente resolveria o problema.

Já que você está executando o Python 2.7 como é evidente no Python Traceback, instale esses dois módulos conforme sugerido abaixo:

  • numexpr está presente nos repositórios do Ubuntu. Então, instale-o executando:

    sudo apt-get install python-numexpr
    
  • bottleneck não está presente nos repositórios do Ubuntu. Então, instale-o usando pip . Também precisaríamos instalar o pacote build-essentials para criar bottleneck :

    sudo apt-get install python-pip build-essentials
    sudo pip install bottleneck
    
por Aditya 13.04.2014 / 09:52
0

Além disso, se um pacote foi instalado via easy_install e agora outros pacotes de dependência foram instalados via PIP, esse tipo de problema pode surgir.

Para corrigir, remova qualquer / todos os módulos instalados por meio de easy_install por rm -rf /usr/local/lib/python2.7/site-packages/"module_name" .

Em seguida, execute pip install "module_name" .

    
por Dennis Miller 01.09.2015 / 18:13

Tags