使用Pmw时出现“ImportError: 没有名为tkinter的模块”
我遇到的问题是:我在运行这个例子中的代码。我在我的RaspberryPi上安装了Python 2.7和3,但我检查过,确保我是在2.7下运行代码。我在2.7下安装了Pmw 2.0.0,而不是在3下,但当我尝试运行时,出现了“ImportError: No module named tkinter”的错误。我一直在使用Tkinter,所以通常它都能正常工作。我也搜索过,确认我确实在调用“Tkinter”,而不是“tkinter”,所以我觉得这可能是Pmw的问题,从错误追踪信息来看似乎也是这样(我在问题底部完整贴出了追踪信息)。我找不到Pmw具体在哪里在寻找小写的“tkinter”,我对此感到很困惑。我不想换平台——这是为了工作,所以除非这个问题无法解决,我需要继续使用Tkinter。哦,对了,我对Python还很陌生,所以我希望能发现这是一个简单的问题,能让这里的某个人轻松找到解决办法。
运行import sys; print sys.path给我的结果是:
['/home/pi/Desktop', '/home/pi', '/usr/bin', '/usr/local/lib/python2.7/dist-packages/distribute-0.6.28-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']
完整的错误追踪信息是:
Traceback (most recent call last):
File "/home/pi/Desktop/LinkedMenusSample.py", line 151, in <module>
Pmw.initialise(root)
File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 131, in __getattr__
self._initialise()
File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 89, in _initialise
raise ImportError(msg)
ImportError: No module named tkinter
5 个回答
我在CentOs上使用matplotlib.pyplot
(python 2.7+)时也遇到了同样的问题。我通过安装tkinter解决了这个问题。你可以用命令sudo yum install tkinter
来安装。希望这对你有帮助。
另一种解决方法可以是这样的:
try:
import tkinter
except:
import Tkinter as tkinter
这样一来,你的程序就总是能使用tkinter这个模块,具体加载tkinter还是Tkinter取决于你使用的Python版本。
也许我可以帮你解决这个错误。
这里有两个想法:
1) 你可能在使用 Python 2.xx 版本,但安装了 Python 3 的 pwm 模块(Tkinter 在 Python 2 到 3 之间改名为 tkinter)。
2) 你可以在导入之前做以下操作,希望能有所帮助:
#import tkinter
#Traceback (most recent call last):
# File "<pyshell#11>", line 1, in <module>
# import tkinter
#ImportError: No module named tkinter
import sys, Tkinter
sys.modules['tkinter'] = Tkinter # put the module where python looks first for modules
#import tkinter # now works!