Подтвердить что ты не робот

Импорт 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 были успешно установлены.

4b9b3361

Ответ 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.