python调用win32api 拉起wps问题排查解决方案

简介: python调用win32api 拉起wps问题排查解决方案

前言

因为这篇文章【毕业设计】基于mqtt+vue+Thinkphp实现校园云打印小程序,我想通过mqtt唤醒客户端调用打印机,但是在实现过程中其他生产环境没办法使用,不是出现报错就是未知错误,期间找了很多方案,最后整合一下我的处理结果,建议大家配合文章查看,不然就搞不懂我在说啥


问题排查

第一个问题,pywintypes.com_error: (-2147221005, ‘无效的类字符串’, None, None)

通过编译后的tk软件在其他电脑上能运行但是不会处理,猜想应该是代码错误导致停止运行了

我的验证方法是,在其他电脑上运行源代码,发现出现错误

pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)

解决办法

报错的代码是这一段,大概就是调用wps出错,因为我的wps版本是抢先版,所以需要用kwps

w = DispatchEx('wps.Application')
 w.Visible = 0  # 不打开软件
w.DisplayAlerts = 0  # 不报错
doc = w.Documents.Open(f)

改了之后的代码,完美运行:

w = DispatchEx('kwps.Application')
 w.Visible = 0  # 不打开软件
 w.DisplayAlerts = 0  # 不报错
 doc = w.Documents.Open(f)

只需要装有同个版本的wps即可解决

第二个问题,pywintypes.com_error: (-2147221008, ‘尚未调用 CoInitialize。’, None, None)

原因:经网上查明:是由于多线程使用pywin32com造成的问题

解决办法:

import pythoncom
# 线程初始化
pythoncom.CoInitialize()
# 程序代码
# 程序代码
# 释放资源
pythoncom.CoUninitialize()

于是在调用打印代码的第一行写入线程初始化

pythoncom.CoInitialize()

末尾释放资源

pythoncom.CoUninitialize()

最后代码:

# 线程初始化
pythoncom.CoInitialize()
## 需要打印文件或文件夹的路径
path = r'C:\Users\MAC\Desktop\test'
traver(path)
print("文件读取完毕,共有{}个".format(q.qsize()))
docx_print()
# 释放资源
pythoncom.CoUninitialize()

完美解决以上问题!!!

总结

以上就是记录今天遇到的问题,pywin32api打印机问题完美解决,不过调用的只能是wps

相关文章
|
1天前
|
缓存 API 数据库
构建高效Python Web应用:Flask框架与RESTful API设计原则
【5月更文挑战第20天】 在现代Web开发中,构建一个轻量级且高效的后端服务至关重要。本文将深入探讨如何使用Python的Flask框架结合RESTful API设计原则来创建可扩展和易于维护的Web应用程序。我们将通过分析Flask的核心特性,以及如何利用它来实现资源的合理划分、接口的版本控制和请求处理优化等,来指导读者打造高性能的API服务。文中不仅提供了理论指导,还包括了实践案例,旨在帮助开发者提升开发效率,并增强应用的稳定性和用户体验。
|
4天前
|
缓存 监控 API
利用Python构建高性能的Web API后端服务
随着微服务架构的普及和RESTful API的广泛应用,构建高性能、可扩展的Web API后端服务变得尤为重要。本文将探讨如何利用Python这一强大且灵活的语言,结合现代Web框架和工具,构建高效、可靠的Web API后端服务。我们将分析Python在Web开发中的优势,介绍常用的Web框架,并通过实际案例展示如何设计并实现高性能的API服务。
|
6天前
|
存储 缓存 监控
利用Python和Flask构建RESTful API的实战指南
在当今的软件开发中,RESTful API已成为前后端分离架构中的核心组件。本文将带你走进实战,通过Python的Flask框架,一步步构建出高效、安全的RESTful API。我们将从项目初始化、路由设置、数据验证、错误处理到API文档生成,全方位地探讨如何构建RESTful API,并给出一些实用的最佳实践和优化建议。
|
6天前
|
Web App开发 JavaScript 测试技术
python自动化测试实战 —— WebDriver API的使用
python自动化测试实战 —— WebDriver API的使用
12 1
|
6天前
|
算法 Python
打造高效生产排程:Python在APS解决方案中的应用
打造高效生产排程:Python在APS解决方案中的应用
22 2
|
6天前
|
开发者 Python
【亮剑】Python中`List.append()`方法不起作用的原因及解决方案
【4月更文挑战第30天】本文探讨了Python中`List.append()`方法不起作用的原因及解决方案。问题可能源于变量作用域、可变类型与不可变类型混淆、函数内的局部变量、错误的赋值操作或并发修改。解决方法包括检查变量、确保正确操作列表、使用`global`关键字、避免错误赋值和采用同步机制处理并发问题。理解这些问题对于编写健壮的Python代码至关重要。
|
6天前
|
机器学习/深度学习 算法 数据挖掘
机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧
机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧
|
6天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
6天前
|
缓存 前端开发 API
toapi,一个强大的 Python Web API库!
toapi,一个强大的 Python Web API库!
29 5
|
6天前
|
API Python
[AIGC] Python列表([])和字典({})常用API介绍
[AIGC] Python列表([])和字典({})常用API介绍