Я запускаю домашнюю версию python на OSX 10.9: Maverick.Ошибка сегментации Python 11 при импорте модуля OpenNI - проблемы с форсированием Homebrew и python?
Короткая версия:
Я испытываю Python segmentation fault 11
, когда я пытаюсь импортировать OpenNI модуль в Python. Я попытался переименовать мой readline.so
файл, как предложено в ссылке ниже, поэтому я предполагаю, что это другая проблема:
Python crashing when running two commands (Segmentation Fault: 11)
мне интересно, если это может быть проблема с моей доморощенной импульс установки не ссылки на правильная версия python. Хотя я, кажется, не могу это исправить, и очень хорошо может лаять неправильное дерево.
Очень длинная версия:
Я пытался установить модуль PyOpenNI питона следующие направления с этого сайта: http://www.justinfx.com/2012/06/21/getting-started-with-xbox-360-kinect-on-osx/
Вместо того, чтобы вручную устанавливать OpenNI, Nite и датчик Kinect как указано на этой ссылке, я использовал варианты сваривания, которые я нашел здесь: https://github.com/totakke/homebrew-openni
Все, кажется, сработало нормально, пока я не достиг последнего шага, установив PyOpenN Я. При создании файла make я столкнулся с ошибкой CMake; он не нашел библиотеку OpenNI и включил каталоги. Я вручную помещал их в файл CMakeCache.txt, и установка, похоже, работала нормально после этого.
После того, как я пытался импортировать OpenNI модуль в оболочке Python, я получил:
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
погуглить это немного, некоторые люди предполагают, что это была ошибка Boost, установив на Mac билд Python вместо версии Homebrew. Homebrew + Python on mac os x 10.8: Fatal Python error: PyThreadState_Get: no current thread importing mapnik
Запуск otool -L $(brew list boost | grep 'python.*.dylib')
выход предложил это был случай:
Линия интереса:
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.5)
Полный выход:
/usr/local/Cellar/boost/1.55.0/lib/libboost_python-mt.dylib:
/usr/local/lib/libboost_python-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.5)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/local/Cellar/boost/1.55.0/lib/libboost_python.dylib:
/usr/local/lib/libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.5)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
Я удалил подталкивание и переустановить его с brew install boost --build-from-source
Смешная вещь, после установки, он дал это предупреждение:
The Boost bottle's module will not import into a Homebrew-installed Python.
If you use the Boost Python module then please:
brew install boost --build-from-source
, который, очевидно, смешно, так как я только что сделал это.Запуск otool
снова:
Линия интереса:
/usr/local/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
Полный выход:
/usr/local/Cellar/boost/1.55.0/lib/libboost_python-mt.dylib:
/usr/local/lib/libboost_python-mt.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
/usr/local/Cellar/boost/1.55.0/lib/libboost_python.dylib:
/usr/local/lib/libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
Так что теперь, кажется, указывает на другой каталог рамочным питон, но кажется, что это еще не Домашняя директория python для начинающих.
Я исправлю в этой оценке, что повышение по-прежнему не связано с домашней версией python? Может ли это вызвать ошибку сегментации 11, или это вызвано чем-то другим?
Возможно, это поможет кому-то - я прочитал в некоторых комментариях к выпуску Homebrew, что ошибка сегментации обычно означает неправильный двоичный код Python. Например, что-то было создано против системного python, но оно запускается против пивоваренного питона. – Tony