系列文章

【毕业设计】基于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问题排查解决方案相关推荐

  1. python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...

    环境:services: zookeeper: image: wurstmeister/zookeeper ports: - 2181 kafka: image: wurstmeister/kafka ...

  2. Python调用win32api

    首先安装Python, 我安装的是Python2.7 其次就是安装Pywin32,  在http://sourceforge.net/projects/pywin32/files/pywin32/ 就 ...

  3. 天灵灵,地灵灵,但愿这个一定灵!!!python调用win32api,启动应用程序窗口...

    这个是逼到没办法,C#那一套,一点基本没有. 还好,网上找到例程,可以指定帐户启动进程,但愿可以摆脱WIN SERVICE启动产生的SESSION 0 隔离问题. 因为这个问题,以SERVICE启动的 ...

  4. Python调用WPS API

    Python调用WPS API 完整文档 最佳实践 WPS 在对于Office或WPS的操作场景中,最适合的其实是Pywin32的方式,因为这种方式可以直接调度由原厂商开放的API,目前我们的场景中最 ...

  5. python调用linuxapi_Linux上使用python调用WPS二次开发接口

    原文链接Linux上使用python调用WPS二次开发接口 - C++ Programer​www.cryfeifei.cn 环境Ubuntu18.04 WPS For Linux Python3 简 ...

  6. python调用dll依赖项

    python调用多依赖库dll报错[WinError 126] 找不到指定的模块 原文:https://blog.csdn.net/Kelvin_Yan/article/details/8600893 ...

  7. Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程

    Docker selenium自动化 - 环境部署与 Python 自动化运行实战演示 第一章:docker selenium 环境部署 ① 下载 selenium 镜像 ② 容器 selenium ...

  8. java调用easyxml接口_【技术教程】如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口?...

    原标题:[技术教程]如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口? RTSP协议视频平台EasyNVR经过多年的积累,已经是一套成熟且完善的视频平台了,用户可以通过网页直接访 ...

  9. matlab crf 工具包,python调用CRF++工具包

    1.安装CRF++ # 拉取github上的源文件 git clone https://github.com/taku910/crfpp.git cd crfpp # 去除找不到winmain.h的错 ...

最新文章

  1. 面试经典:链表中倒数第k个结点?如何从大量数据中找出高频词?
  2. 监控MySQL数据库的主从状态的shell脚本
  3. [4] 算法之路 - 插入排序之Shell间隔与Sedgewick间隔
  4. SHE PWM的simulink仿真谐波分析
  5. java存储过程与sql语句_存储过程与SQL语句怎么选择
  6. 很好用的ISO制作软件
  7. 计算机对教育的影响雅思听力,雅思听力机考带来的两大影响
  8. 存储过程存储函数得简记(转)
  9. brave浏览器_火狐联创、Java Script之父,居然也来倒腾区块链浏览器?
  10. 百万数据php7取出循环_用php处理百万级以上的数据
  11. 计算机网络rip工作原理,12. 小型网络 RIP 协议工作原理
  12. 问题六十八:Phong反射模型的C++实现
  13. 错误未找到引用源_你好,C++(77)12.1 用右值引用榨干C++的性能
  14. (转)新金融的魔幻IPO:都在讲科技,但最终还是靠现金贷上岸
  15. Python 网络爬虫——爬取小说网站
  16. TensorFlow学习【1】--TensorFlow下载安装
  17. 操作系统——进程调度
  18. 1.个人建站的准备:购买云服务器和域名
  19. 蓝牙无线技术(BLE)介绍与开发点滴总结
  20. H5表单validity各个属性对应

热门文章

  1. 【owt】p2p Signaling Server 运行及信令分析
  2. OYE-001(哦耶路由器)JTAG使能方法
  3. EMQ X(1):EMQX简介
  4. VS 2010 安装番茄助手增加代码提示
  5. 咨询公司如何做餐饮大数据解决方案?采集互联网餐饮公开数据是关键一环
  6. java毕业设计番剧资讯检索系统Mybatis+系统+数据库+调试部署
  7. 如何将一个PDF文件转成Word 原理和方法
  8. 修复好一个损坏的思迅软件数据库
  9. python专区--PyMySQL
  10. Bhuman 2021 部署到V6机器人参考教程