Windows为什么Win32com应用程序不能在.py或.pyw模式下运行?

2024-06-16 12:15:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了一个语言学习应用程序,我希望能够在.pyw模式下运行。但是,很明显,因为我使用的是Win32com(用于Sapi语音),所以它只能从我的编辑器(空闲)运行。这与之前的一篇文章有关,我认为我在tkinter和pyttsx3之间遇到了冲突。但是现在,无论是使用pyttsx3还是tkinter,我都遇到了同样的问题

要非常清楚这一点,下面是一段简单的代码:

userinput = input("Press any key")

毫不奇怪,这段代码在我的编辑器中(在shell中)运行良好,并且只需双击.py文件(在控制台中运行)即可运行良好。如果我重命名为.pyw文件并双击,它也会运行良好

下面是另一段使用Sapi文本到语音的简单代码:

import win32com.client
speaker = win32com.client.Dispatch ("SAPI.SpVoice")
speaker.Speak ("Hello World")

此代码在空闲状态下运行良好(我的编辑器) 但它不会通过单击.py文件或.pyw文件来运行。我很快看到了控制台的闪光,它不说话就关机了

为了测试,我添加了如下用户输入行:

import win32com.client
speaker = win32com.client.Dispatch ("SAPI.SpVoice")
speaker.Speak ("Hello World")
userinput = input("Press any key")

我的想法是,为了强制应用程序持久化,我会输入一个用户提示。但这并不奏效。我最终还是在控制台上闪了一闪,什么也没发生。它没有说话,也没有等待用户输入

这很重要,因为根据我的经验,如果应用程序不在.pyw模式下运行,那么在使用pyinstaller之后也不会运行。你只会得到控制台的相同的短暂闪光,什么都没有

很抱歉,我是编程新手,也是Python新手。我错过了什么?如何使应用程序从.pyw模式运行


Tags: 文件代码用户client应用程序tkinter模式语音