Я использую библиотеку ImageMagick с Python ctypes
. Я написал следующий простой код, но он вылетает из-за ошибки сегментации (KERN_INVALID_ADDRESS
) в Mac:
from ctypes import *
from ctypes.util import find_library
lib = CDLL(find_library('MagickWand'))
lib.MagickWandGenesis()
wand = lib.NewMagickWand()
lib.MagickReadImage(wand, 'mona-lisa.jpg')
lib.DestroyMagickWand(wand)
lib.MagickWandTerminus()
Хорошо работает как в Linux, так и в Windows, но работает только в Mac OS X Lion. Я создал ImageMagick различными способами (официальный бинарный пакет, Homebrew, традиционный ./configure && make
), но он зависал при каждом испытании.
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x00000000009a7638
0x000000010149a8d1 in MagickReadImage ()
Не только для функции MagickReadImage()
, функция IsMagickWand()
также дает сбой. Я только предполагаю, что NewMagickWand()
возвращает неправильный указатель, или ctypes
в Mac неправильно обрабатывает указатели, но я не уверен.
Что не так в этой ситуации?