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
Voici les dépendances pour les pandas :
Et le projet Pandas répertorie les deux suivants comme dépendances fortement recommandées :
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 ImportError
lorsque vous essayez d'importer numexpr
et bottleneck
name__. 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:
numexpr
est présent dans les référentiels d'Ubuntu. Alors, installez-le en lançant:
Sudo apt-get install python-numexpr
bottleneck
n'est pas présent dans les référentiels d'Ubuntu. Alors, installez-le en utilisant pip
name__. Nous aurions également besoin d'installer le package build-essentials
afin de construire bottleneck
name__:
Sudo apt-get install python-pip build-essentials
Sudo pip install bottleneck
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"
.