2015-09-26 5 views
1

Так как мой Macbook с процессором i7 в настоящее время с AppleCare, теперь я работаю над более старым Mac mini с основным процессором Duo. Я просто подключил внутренний диск Macbook через USB к Mac mini.Недопустимая инструкция: 4 при импорте python pandas

Теперь на моих сценариях Python я столкнулся с проблемой, которую я не совсем понимаю и не знаю, как отлаживать. Когда я import pandas в Python 2.7.9, Python полностью падает, и я получаю ошибку Illegal instruction: 4. После некоторого googling я предполагаю, что некоторые пакеты скомпилированы для неправильной архитектуры. Но я не знаю, какие из них.

Я установил Python, numpy и scipy с homebrew и pandas и т. Д. С помощью pip в виртуальную среду. Моя система - OS X 10.10.5.

Выход python -vc "import pandas" очень длинный и заданный here.

Я попытался переустановить Python, pandas, numpy и scipy.

  • Как я могу узнать, какой пакет вызывает ошибку?
  • Нужно ли устанавливать флаг архитектуры или что-то еще?
  • Как я могу это исправить?
+0

Это требует * много * дополнительной информации, по крайней мере, журнала построения/стека. Он должен заваривать + штуцер просто отлично. Альтернативным установщиком является anaconda, у которого есть действительно простой/быстрый способ начать работу с pydata. –

+0

Запустите python с подробным флагом ('-v') и вставьте фрагмент вывода из ошибки в ваш вопрос. – chown

+0

@chown Хорошо, хорошо. Попытавшись понять журнал немного больше, кажется, что matplotlib был виновником. Интересно, были ли проблемы с предварительно скомпилированными файлами 'pyc'. Во всяком случае, если вы хотите дать ответ, у вас будет мое преимущество. В противном случае я сам отвечу. – n1000

ответ

2

Удаление файлов .pyc также может работать.

Поскольку это происходит сразу после вызова
dlopen("/usr/local/lib/python2.7/site-packages/matplotlib/_pabc.so", 2);,
вы можете попытаться проверить тип арки, что файл был построен для с:

file /usr/local/lib/python2.7/site-packages/matplotlib/_pabc.so 

затем проверьте тип арки Вашего Hardward:

uname -a 

Если файл общего доступа (_pabc.so) не был создан для этой машины, вам может потребоваться повторная компиляция/установка/независимо, matplotlib o r - одна из его зависимостей.

+0

см. Мой комментарий выше. переустановка matplotlib (в доморощенных) сделала трюк. Возможно, этого было бы достаточно, чтобы удалить файлы pyc ... вы можете добавить это к своему ответу – n1000

+0

Еще раз спасибо! Для полноты я предлагаю вам также упомянуть «python -vc» import pandas «' в вашем ответе. – n1000

1

В моем недавнем опыте это было вызвано тем, что связанная библиотека была неправильной архитектуры как библиотека модуля (как предлагалось chown).

В частности, C скомпилированные библиотеки Python как часть модуля питона вы импортируете (в _mymodule.so файл в директории модуля), призывающую библиотеку связана система (например, libgfortran.dylib), и будучи несоответствие между архитектурой два.

Как уже упоминалось, вы можете проверить архитектуру вашей системы на uname -a и проверить арку оскорбительного дилиба с помощью команды file /path/to/lib.dylib.

Смежные вопросы