Python ImageTk.PhotoImage - segfault
Я пытаюсь запустить следующую команду на Mac 10.6.8:
Python 2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul 27 2011, 14:50:45)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
import Image
import ImageTk
from Tkinter import Tk
window = Tk()
i = Image.open("file.jpg")
photo = ImageTk.PhotoImage(i)
Segmentation fault
Я видел, что в этой ситуации у других была ошибка шины. Кто-нибудь знает об ошибке здесь или об этом? Я не мог понять, имеет ли значение http://infohost.nmt.edu/tcc/help/pubs/pil/image-tk.html. Спасибо!
Извините, что то же самое происходит даже после обновления EPD:
Python 2.7.2 |EPD 7.2-2 (64-bit)| (default, Sep 7 2011, 16:31:15)
[GCC 4.0.1 (Apple Inc. build 5493)] on darwin
Ответы
Ответ 1
Если вы не используете Apple Tcl/Tk
, попробуйте запустить otool -L
на _imagingtk.so
, чтобы узнать, ищет ли он свои разделяемые библиотеки в /System/Library
. Он должен выглядеть в /Library
, а не /System/Library
. Если это так, вы можете изменить путь поиска библиотеки с помощью install_name_tool
.
Ответ 2
Вы пытались запустить Mac Python в 32-битном режиме?
Посмотрите на Fat Binary:
cd /usr/bin/
file python
Я получаю:
python: Mach-O universal binary with 2 architectures
python (for architecture x86_64): Mach-O 64-bit executable x86_64
python (for architecture i386): Mach-O executable i386
Чтобы попробовать 32-битный режим, вы должны:
arch -i386 /usr/bin/python
Если это сработает, тогда это будет, по крайней мере, обходным путем.
Ответ 3
Теперь исправлено в
Enthought Canopy Python 2.7.6 | 64-bit | (default, Apr 11 2014, 11:55:30)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.