python ImageTk.PhotoImage - 段错误
我在一台运行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.