python ImageTk.PhotoImage - 段错误

11 投票
3 回答
1946 浏览
提问于 2025-04-17 12:19

我在一台运行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

我看到其他人在这种情况下遇到了总线错误。有没有人知道这里是否有bug或者有什么解决办法?我不太明白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

3 个回答

1

你试过在Mac上以32位模式运行Python吗?

看看这个胖二进制文件:

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

如果这样能成功,那至少算是个变通办法。

2

如果你没有使用苹果的 Tcl/Tk,可以试着在 _imagingtk.so 上运行 otool -L 命令,看看它是否在 /System/Library 这个地方寻找共享库。它应该是在 /Library 里找,而不是 /System/Library。如果是这样的话,你可以用 install_name_tool 来改变库的搜索路径。

1

现在已经修复在

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.

撰写回答