質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Q&A

解決済

2回答

3114閲覧

tkinterのttkがインポートできない

AkikoKobayashi

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

0グッド

0クリップ

投稿2018/05/02 15:47

編集2018/05/02 16:13

前提・実現したいこと

プログラミング初心者です。

Tkinterでアプリを作成しようとしていますが、ttkウィジェットがインポートできず、エラーになってしまいます。
不思議なのは、以下のコードを実行したところ、一度はちゃんとGUIが表示されたのです。
しかし、2回目以降はエラーがでてしまい、GUIが表示されません。

一体何が問題なのでしょうか?

発生している問題・エラーメッセージ

C:\python>python layout.py

Traceback (most recent call last):
File "layout.py", line 1, in <module>
from tkinter import *
File "C:\python\tkinter.py", line 2, in <module>
from tkinter import ttk
ImportError: cannot import name 'ttk'

該当のソースコード

python

1from tkinter import * 2from tkinter import ttk 3 4root = Tk() 5 6frame = ttk.Frame(root) 7frame.grid(column=0, row=0, sticky=(N, S, E, W)) 8 9 10ttk.Label(frame, text='姓').grid(column=0, row=0) 11ttk.Entry(frame).grid(column=1, row=0) 12 13 14ttk.Label(frame, text='名').grid(column=0, row=1) 15ttk.Entry(frame).grid(column=1, row=1) 16 17 18ttk.Label(frame, text='国').grid(column=0, row=2) 19country_combo = ttk.Combobox(frame) 20country_combo['values'] = ('日本', 'アメリカ', '中国', 'イギリス', 'ロシア') 21country_combo['state'] = 'readonly' 22country_combo.current(0) 23country_combo.grid(column=1, row=2) 24 25 26for child in frame.winfo_children(): 27 child.grid_configure(padx=5, pady=5) 28 29 30root.mainloop() 31

試したこと

from tkinter import *
from tkinter.ttk import *

と書き換えてみましたが、ダメでした。

補足情報(FW/ツールのバージョンなど)

Python 3.6.5
windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ソースの内容を見ました。ソースは問題ないです。

イメージ説明

ttkウィジェットがインポートできず、エラーになってしまいます。

C:¥python このフォルダの中に置かれたファイルが悪さをしています。
確認してください。

次に

以下のコードを実行したところ、一度はちゃんとGUIが表示されたのです。
しかし、2回目以降はエラーがでてしまい、GUIが表示されません。

この原因は正しいコードの先頭の2行が
決まったフォルダ(パス)の探索範囲の順で
インポートの実行しているためです。

時間のあるときに、消す前に 
このミスの原因のtkinter.pyの先頭あたりを見てください。

==>> こちら 
読み込み時に検索する範囲の内容 の説明

投稿2018/05/02 16:33

kawakawa2018

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

C:\python\tkinter.pyを作ってませんか?
もしそうなら消してください。誤ってそちらに誘導されています。

コードの書き方について

teratailには、コードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。
Python

投稿2018/05/02 15:49

編集2018/05/02 15:51
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AkikoKobayashi

2018/05/02 16:15

まさに、tkinter.pyを作っていました… tkinter.pyを消したらうまくいきました! LouiS0616さん、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問