I am quite new and confused. I tried a simple script with tkinter and it worked fine in IDLE but when i try to launch it from CMD - the tkinter window opens and it looks fine , but when you attempt to click any button or file menu options an AttributeError raises:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1489, in __call__
return self.func(*args)
File "060214_Manual_Evaluation_of_Protein-protein_Cross-Links.py", line 13, in Open_csv
self.CsvPath = tk.filedialog.askopenfilename()
AttributeError: 'module' object has no attribute 'filedialog'
I am thankful for any input or where i could possibly find more information about differences between IDLE and CMD.
This looks like IDLE sets a different PYTHONPATH, or uses a different python executable; make sure you use the same version of python by checking
sys.version_info
from both and comparingsys.path
.People asked about python version because tk.filedialog is spelled differently in 2.x. However, I suspect that your problem is that Idle runs code in a managed environment that masks a bug in your unposted code of not properly importing tkinter.filedialog. To illustrate, the follow is from the standard 3.4.2 console interpreter
Here are the same statements in Idle's Shell.
The reason that there is no error is because Idle has already imported the filedialog submodule as
tkinter.filedialog
(in sys.modules). If this is your problem also, a solution for you is to add the import below and refer to 'filedialog' without the 'tk' prefix.If this does not solve this issue, edit your question to add a truly minimal code example and explain exactly how you run both with Idle and 'CMD' (is this cmd.exe on Windows, or what?).