解决pyttsx3无法封装的问题

yipeiwu_com6年前Python基础

一、python3下面的pyttsx3正常可以使用,类似下面:

import pyttsx3
engine = pyttsx3.init()
rate = engine.getProperty('rate')
engine.setProperty('rate', rate-60)
engine.say('123')
engine.runAndWait()

二、但是一旦用pyinstaller封装成exe后,运行就会提示

1. pyttsx3.drivers模块找不到

pyttsx3无法封装

2. 在dreiver.py(pyttsx3的配置文件)加上from pyttsx3.drivers import sapi5 依然会提醒错误。

三、细看win下面调用的drivers模块为sapi5, 里面依然是封装了win32com.client.Dispatch('SAPI.SPVoice')这个模块,可以直接用win32com.client自己改写封装就好,不用pyttsx3模块。

以上这篇解决pyttsx3无法封装的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

django数据模型on_delete, db_constraint的使用详解

# 半夜撸代码  正在一顿操作猛如虎的时候,发现删了其中一张表的某条记录,结果发现其他表跟这个字段的关联的也都被删除,我已经写了db_constraint=False 难道我用...

使用apidocJs快速生成在线文档的实例讲解

使用apidocJs快速生成在线文档的实例讲解

apidoc是一个轻量级的在线REST接口文档生成系统,支持多种主流语言,包括Java、C、C#、PHP和Javascript等。使用者仅需要按照要求书写相关注释,就可以生成可读性好、界...

Python中有趣在__call__函数

Python中有一个有趣的语法,只要定义类型的时候,实现__call__函数,这个类型就成为可调用的。 换句话说,我们可以把这个类型的对象当作函数来使用,相当于 重载了括号运算符。...

详解Python如何获取列表(List)的中位数

详解Python如何获取列表(List)的中位数

前言 中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均...

用实例解释Python中的继承和多态的概念

用实例解释Python中的继承和多态的概念

在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base cla...