tkinter 无法从终端导入,但可以在 Python 3 shell on Raspberry Pi 中使用

tkinter not importable from terminal but works in Python 3 shell on Raspberry Pi

提前感谢您的帮助我已经卡了将近一个星期了!

我正在尝试在我的 Pi 上使用 tkinter,当 python 应用程序 (shell) 中的 运行 时以下工作正常:

import tkinter
tk = tkinter.Tk()
window = tkinter.Tk()
tk.mainloop

但是当我输入命令时:

python /home/pi/myfiles/windowtest.py

在终端中,我得到

ImportError: No module named tkinter

到目前为止,我已经尝试过 sudo apt-get install tkinter,与更新、dev、tk、-f、python-tkinter 和我能想到的任何其他方法一样。 事实上 sudo apt-get install tkinter 无法定位包,与 python-tkinter 相同。

sudo apt-get install python-tk 告诉我已经安装了最新版本。

我使用的是大约 10 天前安装的最新 NOOBS。

背景 - 我想 运行 一些由使用 mplayer 的 crontab 启动的 python 脚本,目前所有的 mplay blurb 在终端模式下将我的菜单推离屏幕,我可以看到它。我希望 tkinter 会打开一个 window,我可以在其中放入我的菜单并查看它。

问题是模块在 Python 2 中命名为 Tkinter,在 Python 3 中命名为 tkinter。在 Debian 中,Raspbian,Ubuntu 等等,命令行上的 python 开始 Python 2.x(现在通常是 2.7),而 运行 [=29] 需要 python3 =] 3.x 解释器。

因为这是一个新项目,我猜你应该只使用 Python 3(并且你已经为 Python 3 编写了代码),因此 运行 命令带有 python3:

python3 /home/pi/myfiles/windowtest.py

% python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named tkinter
>>> import Tkinter
>>> 

对比

% python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>>

运行 脚本具有:

python3 main.py