gpt4 book ai didi

python - 脚本在 CMD 中运行时因 AttributeError 而失败,但在 IDLE 中执行正常

转载 作者:太空宇宙 更新时间:2023-11-03 15:09:45 25 4
gpt4 key购买 nike

我很新,很困惑。我用 tkinter 尝试了一个简单的脚本,它在 IDLE 中运行良好,但是当我尝试从 CMD 启动它时 - tkinter 窗口打开并且看起来不错,但是当您尝试单击任何按钮或文件菜单选项时,会引发 AttributeError:

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'

感谢您提供的任何信息,或者我可以在哪里找到有关 IDLE 和 CMD 之间差异的更多信息。

最佳答案

人们询问 python 版本是因为 tk.filedialog 在 2.x 中的拼写不同。但是,我怀疑您的问题是 Idle 在托管环境中运行代码,该环境掩盖了未正确导入 tkinter.filedialog 的未发布代码中的错误。为了说明,以下是标准的 3.4.2 控制台解释器

>>> import tkinter as tk
>>> tk.filedialog
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'filedialog'

以下是 Idle 的 Shell 中的相同语句。

>>> import tkinter as tk
>>> tk.filedialog
<module 'tkinter.filedialog' from 'C:\\Programs\\Python34\\lib\\tkinter\\filedialog.py'>

之所以没有报错是因为Idle已经将filedialog子模块导入为tkinter.filedialog(在sys.modules中)。如果这也是您的问题,您的解决方案是在下面添加导入并引用不带“tk”前缀的“filedialog”。

>>> from tkinter import filedialog
>>> filedialog
<module 'tkinter.filedialog' from 'C:\\Programs\\Python34\\lib\\tkinter\\filedia
log.py'>
>>> filedialog.askopenfilename
<function askopenfilename at 0x0000000000498BF8>

如果这不能解决此问题,请编辑您的问题以添加一个真正最小的代码示例并准确解释您如何同时使用空闲和“CMD”(这是 Windows 上的 cmd.exe,还是什么?)。

关于python - 脚本在 CMD 中运行时因 AttributeError 而失败,但在 IDLE 中执行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com