Импорт pandas показывает ImportError: невозможно импортировать имя hashtable
Я установил pandas на python 3.3 и закодирован следующим образом:
import csv
import pandas
from pandas import DataFrame
csvdata = pandas.read_csv('datafile.csv')
df = DataFrame(csvdata)
Появляется следующее сообщение об ошибке:
cannot import name hashtable
Traceback (most recent call last):
File "C:\Users\document\test4.py", line 5, in <module>
import pandas
File "C:\Python33\lib\site-packages\pandas\__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable
Может ли кто-нибудь помочь мне разобраться, как решить эту ошибку? Python и pandas были успешно установлены.
Ответы
Ответ 1
Обновление: теперь я рекомендую установить научный стек python с помощью Anaconda.
Pandas поставляется в комплекте и может быть легко обновлен с помощью conda:
conda update pandas
Он также поставляется в комплекте с cython, scipy (что сложно установить через pip), statsmodels и управляет зависимостями/отношениями между этими пакетами для вас.
Следует подчеркнуть, что вам не нужен доступ admin/sudo для установки на компьютере для установки Anaconda.
Если вы не используете Anaconda, рекомендуемый способ установить pandas через pip (на Mac и Windows):
pip install pandas
В Linux вы также можете установить с python-pandas
в любом репозитории, но помните, что вы можете установить более старую версию pandas, в идеале вы должны использовать последнюю стабильную версию.
Похоже, вы пытались установить из источника, о чем упоминаются в документах:
Установка из репозитория git требует недавней установки Cython, поскольку источники cythonized C больше не проверяются в исходном управлении. Выпущенные исходные дистрибутивы будут содержать встроенные файлы C. Я рекомендую установить последний Cython через easy_install -U Cython
Обратите внимание, что вы не сможете импортировать pandas, если вы откроете интерпретатор в исходном каталоге , если вы не создадите расширения C на месте:
python setup.py build_ext --inplace
Без компиляции hashtables.pyx
(и нескольких других файлов cython) pandas не может их импортировать. Они необходимы для pandas (что объясняет ваше сообщение об ошибке).
Примечание: это сообщение было более наглядным для 0.11.1 и далее, он скажет, что C-расширения не были построены.
Ответ 2
pandas Python 3.3 двоичный здесь http://www.lfd.uci.edu/~gohlke/pythonlibs/, похоже, не был скомпилирован успешно. У меня не было времени, чтобы настроить мою машину сборки для сборки и тестирования бинарных файлов Python 3.3, но я знаю, что все работает на Python 3.3 на других платформах.
Ответ 3
У меня была такая же проблема, когда я пытался установить pandas 0.13.1. Он был установлен, но я не смог его импортировать.
Как говорит @danioyuan, я установил Cython с помощью easy_install, и теперь я могу импортировать pandas.
Ответ 4
Я столкнулся с той же проблемой.
Я установил pandas с помощью команды pip install pandas.
По умолчанию мой pip установлен pandas в dist-пакетах python3.2, а моя версия python по умолчанию - 2.7.
В результате, когда я сделал python, чтобы открыть интерактивную оболочку и попытаться сделать
import pandas
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/dist-packages/pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable
В чем была моя проблема:
python3.2
import pandas
Пожалуйста, убедитесь, что вы используете ту же версию Python, чьи dist-пакеты содержат pandas.