好吧,据说PIL应该能够自动与Tkinter合作,但我的不是。我在成像目录Tk目录中找到了这个文本文件。
Using PIL With Tkinter Starting with 1.0 final (release candidate 2 and later, to be precise), PIL can attach itself to Tkinter in flight. As a result, you no longer need to rebuild the Tkinter extension to be able to use PIL. However, if you cannot get the this to work on your platform, you can do it in the old way: * Adding Tkinter support 1. Compile Python's _tkinter.c with the WITH_APPINIT and WITH_PIL flags set, and link it with tkImaging.c and tkappinit.c. To do this, copy the former to the Modules directory, and edit the _tkinter line in Setup (or Setup.in) according to the instructions in that file. NOTE: if you have an old Python version, the tkappinit.c file is not included by default. If this is the case, you will have to add the following lines to tkappinit.c, after the MOREBUTTONS stuff: { extern void TkImaging_Init(Tcl_Interp* interp); TkImaging_Init(interp); } This registers a Tcl command called "PyImagingPhoto", which is use to communicate between PIL and Tk's PhotoImage handler. You must also change the _tkinter line in Setup (or Setup.in) to something like: _tkinter _tkinter.c tkImaging.c tkappinit.c -DWITH_APPINIT -I/usr/local/include -L/usr/local/lib -ltk8.0 -ltcl8.0 -lX11
不幸的是我不知道怎么做这个,我在网上找不到任何指南。有人可以告诉我如何使用标志设置编译Python的_tkinter.c等等吗?
答案 0 :(得分:0)
您使用的是什么版本的Python和PIL(以及在什么平台上使用)?所有合理的最新版本应该已经支持所有这些必需的选项(使用setup.py以及Modules / Setup.dict) - 例如,包括tkappinit.c等 - 所以特别难以知道在真空中建议什么”。此外,如何编译(假设您确实需要)可能非常依赖于平台,因此如果您确实需要重新编译(可能不太可能),了解您的平台可能很重要。