【发布时间】:2019-08-06 17:11:08
【问题描述】:
在我导入 pyttsx3 之前,我的 tkinter 应用程序将运行无控制台 (.pyw)。导入 pyttsx3 后,应用程序将仅从编辑器运行(空闲)。
这是一个 tkinter 应用程序,可以在空闲状态下完美运行。我导入 pyttsx3,初始化它,让它使用 Windows Sapi 语音说话,一切都很好,所有 tkinter 功能从头到尾都按预期运行。但在 Idle 之外,应用程序不会在 .pyw 模式下运行。它会短暂显示黑色控制台屏幕并关闭。我已经非常仔细地检查了——从应用程序中删除了所有 pyttsx3 代码——除了 import 语句,从字面上看,仅 import 语句就足以导致应用程序不再在 .pyw 模式下运行。
import tkinter as tk
(在 .pyw 模式下运行良好)
import tkinter as tk
import pyttsx3 as speak
(不会在 .pyw 模式下运行)
问题:如何简单地导入库(甚至不初始化或使用它......只是导入它)导致 tkinter 应用程序不再作为 .pyw 运行?导入库会以某种方式干扰 tkinter 主循环吗?
【问题讨论】:
-
您可以从交互式 Python 会话中导入和使用
pyttsx3吗? -
我写了一个没有 tkinter 的应用程序的早期交互版本。回去检查,实际上问题是一样的,所以它可能是 python 问题而不是 tkinter。我发现: 没有 pyttsx3: - 从空闲(在 shell 中)运行良好 - 从 .py 文件(在控制台中)运行良好 - 不会从 .pyw 文件运行 使用 pyttsx3: - 从空闲状态很好 - 不会作为 . py 或 .pyw 文件 同样,禁用应用程序所需的只是导入语句本身。
-
您可能应该将该信息添加到您的问题中。
-
其他 Tkinter 程序从
.pyw文件运行是否没有问题? -
是的,只要不导入 pyttsx3,其他 tkinter 程序从 .pyw 包括这个应用程序都可以正常运行。
标签: python-3.x tkinter