web-dev-qa-db-fra.com

Pourquoi ai-je le message ImportError lorsque j'essaie d'importer le module Pandas Python?

J'ai installé le module Pandas pour Python 2.7 en utilisant apt-get. Cependant, lorsque j'essaie d'importer le module, il génère un 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')

L'appel dans /usr/lib/pymodules/python2.7/pandas/__init__.py est:

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

Pourquoi est-ce que je reçois ImportError et comment résoudre ce problème?

Voici ce que je reçois lorsque j'essaie d'importer les dépendances de Pandas dans un Python shell interactif:

>>> 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
6
user268000

Voici les dépendances pour les pandas :

  • NumPy
  • python-dateutil
  • pytz

Et le projet Pandas répertorie les deux suivants comme dépendances fortement recommandées :

  • numexpr
  • goulot

Il semble que apt-get a uniquement installé les dépendances requises et non celles fortement recommandées; en tant que tel, vous obtenez un ImportErrorlorsque vous essayez d'importer numexpret bottleneckname__. L'installation de ces modules devrait probablement résoudre le problème.

Depuis, vous utilisez Python 2.7 comme le montre bien le Python Traceback, installez ces deux modules comme suggéré ci-dessous:

  • numexprest présent dans les référentiels d'Ubuntu. Alors, installez-le en lançant:

    Sudo apt-get install python-numexpr
    
  • bottleneckn'est pas présent dans les référentiels d'Ubuntu. Alors, installez-le en utilisant pipname__. Nous aurions également besoin d'installer le package build-essentials afin de construire bottleneckname__:

    Sudo apt-get install python-pip build-essentials
    Sudo pip install bottleneck
    
2
Aditya

En outre, si un package a été installé via easy_install et que d'autres packages de dépendance ont été installés via PIP, ce type de problème peut survenir.

Pour résoudre ce problème, supprimez tous les modules/tous les modules installés via easy_install by rm -rf /usr/local/lib/python2.7/site-packages/"module_name".

Ensuite, exécutez pip install "module_name".

0
Dennis Miller