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

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
4b9b3361

Ответ 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.