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

Pandas установка в Mac OS X: ImportError (невозможно импортировать имя хэш-таблицы)

Я хотел бы построить 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
4b9b3361

Ответ 1

Я получил ту же ошибку (ImportError: cannot import name hashtable) при попытке импортировать pandas из каталога исходного кода. Попробуйте запустить интерпретатор python из другого каталога и снова импортируйте pandas.