2016-07-07 8 views
0

パスを取得してダウンロードしたものを保存するためのディレクトリ選択ダイアログボックスを表示しようとしています。 CMDは私がGUIのTkinterのを使用していますTkinterがcmdで動作していない(IDLEで作業中)

NameError: name 'Tk' is not defined

このエラーが発生します。

コードスニペットのPython 3.4.3を使用して

from tkinter import filedialog 
root = Tk() 
root.withdraw() 
filename = filedialog.askdirectory() 

。助け/提案?

+0

私は3.4.4と3.5.1で適用したパッチは、NameErrorで3.5.2または3.6.0a2結果になりましたIDLEからそのコードの実行中に、この特定の問題を修正しているように見えます。トラッカーの問題はhttps://bugs.python.org/issue25507です。 3.6.0より前の隠れたインポートのために、IDLE実行コードのこの問題は失敗するはずです。 –

+0

@TerryJanReedy情報をありがとう! –

+0

私の答えはこちら:https://stackoverflow.com/questions/38806673/importing-from-a-package-in-idle-vs-shell/38808437#38808437では、これを既存のリリースで修正する方法を説明しています。 –

答えて

0

from tkinter import filedialogは、filedialogモジュールをtkinterからインポートします。通常のTkinterのものが必要な場合は、それもインポートする必要があります。 import tkinter as tkをお勧めします。 root = tk.Tk()なので、すべてをグローバル名前空間にダンプするだけではありません。または、実際にルートオブジェクトが必要な場合は、from tkinter import Tkを使用します。それが必要として

from tkinter import Tk 
from tkinter import filedialog 
root = Tk() 
root.withdraw() 
filename = filedialog.askdirectory() 
+0

あなたは神様です!ありがとう、トン! –

関連する問題