2012-12-22 111 views
2

我正在学习做与Tkinter的GUI的Python程序,我已经碰到了一堆问题:在OSX山狮使用的Tkinter 8.2

尝试运行from Tkinter import filedialog我得到ImportError: cannot import name filedialog。在其他地方,我已经看到它用小写tkinter(我认为它仅适用于Python 3)调用,但它不认为它存在ImportError: No module named tkinter。然而,运行from Tkinter import *的作品,我可以从教程中创建示例hello world。

我唯一的猜测就是它试图使用随OSX提供的Tkinter的过时版本。然而,考虑到新的狮子山是多么的新奇,我不得不怀疑它真的会过时多久。我的假设是,自己安装Python 2.7后,如果我从IDLE运行,它应该可以工作,但是我可以从IDLE shell得到完全相同的结果。

所以之后,我尝试sudo pip install tkintersudo pip install Tkinter从UNIX终端,但我回来No distributions at all found for update

所以我开始寻找到关于Tkinter的一些文档,我遇到Tcl/Tk instructions for Mac OS X其中规定:

重要提示:如果您使用的是Mac OS X 10.8,10.7或10.6,则仅在安装了ActiveTcl 8.5的情况下,才能使用来自64位/ 32位Python安装程序的IDLE或tkinter。如果您无法安装ActiveTcl 8.5,请改为使用32位安装程序。

所以我觉得我在他们提供的表格OS,看到他们推荐ActiveTcl8.5.11,但不幸的是,download link is broken.

所以我在这里的损失完全是。任何帮助,将不胜感激。

回答

3

如果你想实现一个文件对话框,看看tkFileDialog。它是不是Tkinter模块的一部分的独立模块&。

您可以通过直接将其导入使用它:

import tkFileDialog 
+0

谢谢,我能得到的东西的工作,但我真的不明白。我在看[这个问题](http://stackoverflow.com/questions/9239514/filedialog-tkinter-and-opening-files),其中使用了filedialog,好像它是tkinter本身的一部分。 –

+2

他们似乎已经对Pyton 3中的Tkinter进行了更改,例如将它们全部设置为小写字母,并将tkinter模块的tkfiledialog部分制作成tkinter模块。这是造成混乱的原因。我仍然使用2.x :) – Bharat