Ответ 1
Я получил ту же ошибку (ImportError: cannot import name hashtable
) при попытке импортировать pandas из каталога исходного кода. Попробуйте запустить интерпретатор python из другого каталога и снова импортируйте pandas.
Я хотел бы построить pandas из источника, а не использовать диспетчер пакетов, потому что мне интересно внести свой вклад. В первый раз я попытался построить pandas, это были следующие шаги:
1) создал виртуальный
mkvirtualenv --no-site-packages pandas
2) активировал virtualenv
3) установлен Anaconda CE. Однако это было установлено в ~/anaconda.
4) клонированный pandas
5) построены C-расширения на месте
(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> ~/anaconda/bin/python setup.py build_ext --inplace
6) построено pandas
(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> ~/anaconda/bin/python setup.py build
7) пропустил носететы на главной ветке
Не удалось выполнить тесты: (pandas) ems ~/.virtualenvs/ pandas/localrepo/pandas > nosetests pandas Е ================================================== ==================== ОШИБКА: Ошибка: ValueError (numpy.dtype имеет неправильный размер, попробуйте перекомпилировать) -------------------------------------------------- -------------------- Traceback (последний последний вызов): Файл "/Users/EmilyChen/.virtualenvs/pandas/lib/python2.7/site-packages/nose/loader.py", строка 390, в loadTestsFromName addr.filename, addr.module) Файл "/Users/EmilyChen/.virtualenvs/pandas/lib/python2.7/site-packages/nose/importer.py", строка 39, в importFromPath return self.importFromDir(dir_path, fqname) Файл "/Users/EmilyChen/.virtualenvs/pandas/lib/python2.7/site-packages/nose/importer.py", строка 86, в importFromDir mod = load_module (part_fqname, fh, filename, desc) Файл "/Users/EmilyChen/.virtualenvs/pandas/localrepo/pandas/pandas/init.py", строка 6, в из. import hashtable, tslib, lib Файл "numpy.pxd", строка 156, в init pandas.hashtable(pandas/hashtable.c:20354) ValueError: numpy.dtype имеет неправильный размер, попробуйте перекомпилировать
Ran 1 тест в 0.001s
FAILED (ошибки = 1)
Кто-то из списка рассылки PyData сказал:
Похоже, что у вас есть NumPy, установленный где-то еще на вашем компьютере, и AnacondaCE не играет хорошо в virtualenv. Ошибка, которую вы получаете, - это сообщение об ошибке Cython, которое возникает, когда версия NumPy, с которой она была создана, не соответствует установленной версии вашей системы. Я думал, что 1.7.x должен быть совместим с ABI с 1.6.x(так этого бы не случилось), но я думаю, нет. Вздох
Версия numpy в библиотеке Anaconda CE - 1.7.0b2, а моя установка системы - версия 1.5.1. Setup.py, связанный с numpy в библиотеках дистрибутива Anaconda, когда он построил pandas, но я предполагаю, что он ссылается на мою системную версию при запуске nosetests/pandas/ init.py
Далее, я повторил шаги за пределами virtualenv, но получил ту же ошибку. Наконец, я решил установить все зависимости в новом virtualenv вместо использования дистрибутива Anaconda для сборки pandas. Таким образом, я вижу, что зависимости, такие как numpy, находятся в каталоге lib виртуальной установки python, что имеет прецедент, когда pandas. init выполняет операции импорта. Это то, что я сделал:
1) установлены numpy, dateutil, pytz, cython, scipy, matplotlib и openpyxl с помощью pip
2) построены c расширения на месте
3) pandas установите вывод здесь: http://pastebin.com/3CKf1f9i
4) pandas не установлен правильно
(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas
cannot import name hashtable
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pandas/__init__.py", line 6, in <module>
from . import hashtable, tslib, lib
ImportError: cannot import name hashtable
Я рассмотрел этот вопрос, но cython установлен в моем случае, и я стараюсь успешно строить из источника, а не использовать пипс, как рекомендовал ответ.
(pandas)ems ~/.virtualenvs/pandas/localrepo/pandas> which cython
/Users/EmilyChen/.virtualenvs/pandas/bin/cython
Я получил ту же ошибку (ImportError: cannot import name hashtable
) при попытке импортировать pandas из каталога исходного кода. Попробуйте запустить интерпретатор python из другого каталога и снова импортируйте pandas.