python调用win32api 拉起wps问题排查解决方案
系列文章
【毕业设计】基于mqtt+vue+Thinkphp实现校园云打印小程序
(暂未完成更新)
文章目录
- 系列文章
- 前言
- 问题排查
- 第一个问题,pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
- 第二个问题,pywintypes.com_error: (-2147221008, '尚未调用 CoInitialize。', None, None)
- 总结
前言
因为这篇文章【毕业设计】基于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
python调用win32api 拉起wps问题排查解决方案相关推荐
- python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...
环境:services: zookeeper: image: wurstmeister/zookeeper ports: - 2181 kafka: image: wurstmeister/kafka ...
- Python调用win32api
首先安装Python, 我安装的是Python2.7 其次就是安装Pywin32, 在http://sourceforge.net/projects/pywin32/files/pywin32/ 就 ...
- 天灵灵,地灵灵,但愿这个一定灵!!!python调用win32api,启动应用程序窗口...
这个是逼到没办法,C#那一套,一点基本没有. 还好,网上找到例程,可以指定帐户启动进程,但愿可以摆脱WIN SERVICE启动产生的SESSION 0 隔离问题. 因为这个问题,以SERVICE启动的 ...
- Python调用WPS API
Python调用WPS API 完整文档 最佳实践 WPS 在对于Office或WPS的操作场景中,最适合的其实是Pywin32的方式,因为这种方式可以直接调度由原厂商开放的API,目前我们的场景中最 ...
- python调用linuxapi_Linux上使用python调用WPS二次开发接口
原文链接Linux上使用python调用WPS二次开发接口 - C++ Programerwww.cryfeifei.cn 环境Ubuntu18.04 WPS For Linux Python3 简 ...
- python调用dll依赖项
python调用多依赖库dll报错[WinError 126] 找不到指定的模块 原文:https://blog.csdn.net/Kelvin_Yan/article/details/8600893 ...
- Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程
Docker selenium自动化 - 环境部署与 Python 自动化运行实战演示 第一章:docker selenium 环境部署 ① 下载 selenium 镜像 ② 容器 selenium ...
- java调用easyxml接口_【技术教程】如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口?...
原标题:[技术教程]如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口? RTSP协议视频平台EasyNVR经过多年的积累,已经是一套成熟且完善的视频平台了,用户可以通过网页直接访 ...
- matlab crf 工具包,python调用CRF++工具包
1.安装CRF++ # 拉取github上的源文件 git clone https://github.com/taku910/crfpp.git cd crfpp # 去除找不到winmain.h的错 ...
最新文章
- 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
- 监控MySQL数据库的主从状态的shell脚本
- [4] 算法之路 - 插入排序之Shell间隔与Sedgewick间隔
- SHE PWM的simulink仿真谐波分析
- java存储过程与sql语句_存储过程与SQL语句怎么选择
- 很好用的ISO制作软件
- 计算机对教育的影响雅思听力,雅思听力机考带来的两大影响
- 存储过程存储函数得简记(转)
- brave浏览器_火狐联创、Java Script之父,居然也来倒腾区块链浏览器?
- 百万数据php7取出循环_用php处理百万级以上的数据
- 计算机网络rip工作原理,12. 小型网络 RIP 协议工作原理
- 问题六十八:Phong反射模型的C++实现
- 错误未找到引用源_你好,C++(77)12.1 用右值引用榨干C++的性能
- (转)新金融的魔幻IPO:都在讲科技,但最终还是靠现金贷上岸
- Python 网络爬虫——爬取小说网站
- TensorFlow学习【1】--TensorFlow下载安装
- 操作系统——进程调度
- 1.个人建站的准备:购买云服务器和域名
- 蓝牙无线技术(BLE)介绍与开发点滴总结
- H5表单validity各个属性对应