我在尝试在Mac中使用Enthough-Canopy编译简单的tkinter gui时遇到问题。这是我要编译的代码:

from Tkinter import *
root= Tk();
root.title('Toplevel')
Label(root,text='This is the Toplevel').pack(pady=10)
root.mainloop()


这是我收到的消息:

ImportError                               Traceback (most recent call last)
/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-
x86_64/Canopy.app/Contents/lib/python2.7/site-packages/IPython/utils/py3compat.pyc in
execfile(fname, *where)
    181             else:
    182                 filename = fname
--> 183             __builtin__.execfile(filename, *where)
/var/folders/m1/70f55r290cz7j_sjc010k0n00000gn/T/tmp1gLNQA.py in <module>()
----> 1 from Tkinter import *
      2
      3 root= Tk();
      4
      5 root.title('Toplevel')
/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-
x86_64/Canopy.app/Contents/lib/python2.7/lib-tk/Tkinter.py in <module>()
     37     # Attempt to configure Tcl/Tk without requiring PATH
     38     import FixTk
---> 39 import _tkinter # If this fails your Python may not be configured for Tk
     40 tkinter = _tkinter # b/w compat for export
     41 TclError = _tkinter.TclError
ImportError: dlopen(/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-
x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload/_tkinter.so, 2): Library not loaded:
/Library/Frameworks/Python.framework/Versions/111.222.33344/lib/libtcl8.5.dylib
 Referenced from: /Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-
x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload/_tkinter.so
  Reason: image not found


主要问题是TK或TCL,但是它已经安装并且可以正常工作(Aptana studio 3中的代码运行正常),但是当我尝试在Canopy中运行它时,它会失败。

感谢您的时间和支持

最佳答案

默认情况下,Canopy使用Qt4图形后端,这将导致问题,因为这两个后端无法在单个进程中共存。为了解决这个问题,在Canopy Preferences> Python选项卡中,您可以将PyLab后端从Interactive(Qt4)更改为Inline(SVG)以允许使用Tkinter。

您可以根据项目在这两种设置之间进行切换(建议使用,因为默认的Qt后端通常更具吸引力),或者如果看不到需要返回的内容,则只需指定内联(SVG)。

关于python - Mac版的Enthought-Canopy中与Tkinter发生冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16058639/

10-11 19:42