パイソンのバージョン違いでTkinterがtkinterか変わるのは、
しょうがないにしても!
pyhton2系ではTkinterで、3系では、tkinterである
最初のTが大文字と小文字の違いがある。
インポートするときには間違えないよいうにしなければいけない。
python2のソースでは、
- import Tkinter
- root = Tkinter.Tk()
- root.mainloop()
python3のソースでは、
- import tkinter
- root = tkinter.Tk()
- root.mainloop()
python3では、tkinterがインポートできる
root@localhost:~# python
Python 3.6.3 (default, Oct 6 2017, 00:00:00)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>>
python2では、Tkinterがインポートできない
root@localhost:~# python2
Python 2.7.12 (default, Jul 18 2016, 15:02:52)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
raise ImportError, str(msg) + ', please install the python-tk package'
ImportError: No module named _tkinter, please install the python-tk package
>>> import tkinter
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named tkinter
ので、apt install python-tk
root@localhost:~# apt install python-tk
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
提案パッケージ:
tix python-tk-dbg
以下のパッケージは「削除」されます:
blt python3-tk
以下のパッケージが新たにインストールされます:
python-tk
アップグレード: 0 個、新規インストール: 1 個、削除: 2 個、保留: 137 個。
23.6 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に 175 kB のディスク容量が解放されます。
続行しますか? [Y/n] y
(データベースを読み込んでいます ... 現在 170471 個のファイルとディレクトリがインストールされています。)
python3-tk:amd64 (3.6.3-0ubuntu1~14.04.york0) を削除しています ...
blt (2.5.3+dfsg-3~14.04.york1) を削除しています ...
以前に未選択のパッケージ python-tk を選択しています。
(データベースを読み込んでいます ... 現在 170463 個のファイルとディレクトリがインストールされています。)
.../python-tk_2.7.5-1ubuntu1_amd64.deb を展開する準備をしています ...
python-tk (2.7.5-1ubuntu1) を展開しています...
python-tk (2.7.5-1ubuntu1) を設定しています ...
root@localhost:~# python2 -m Tkinter
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 3860, in <module>
_test()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 3835, in _test
root = Tk()
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1818, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
root@localhost:~# python -m Tkinter
/usr/bin/python: No module named Tkinter
root@localhost:~# python -m tkinter
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 37, in <module>
import _tkinter
ModuleNotFoundError: No module named '_tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 142, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/usr/lib/python3.6/tkinter/__init__.py", line 39, in <module>
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "/usr/lib/python3.6/tkinter/__init__.py", line 37, in <module>
import _tkinter
ModuleNotFoundError: No module named '_tkinter'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 183, in _run_module_as_main
mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
File "/usr/lib/python3.6/runpy.py", line 142, in _get_module_details
return _get_module_details(pkg_main_name, error)
File "/usr/lib/python3.6/runpy.py", line 109, in _get_module_details
__import__(pkg_name)
File "/usr/lib/python3.6/tkinter/__init__.py", line 39, in <module>
raise ImportError(str(msg) + ', please install the python3-tk package')
ImportError: No module named '_tkinter', please install the python3-tk package
root@localhost:~#
となり、pyhton2とpyhton3では、tkinter(Tkinter)が共存できない!
apt-get install python3-tk
だとpyhton3では、動くようになる。
※(DISPLAYは、vncで対応しますので。。。)
自分の環境だけなのかな~