首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用Pyinstaller打包时遇到No module named win32timezone问题

用Pyinstaller打包时遇到No module named win32timezone问题

作者头像
全栈程序员站长
发布2022-11-17 15:16:53
发布2022-11-17 15:16:53
2.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

用Pyinstaller打包时遇到No module named win32timezone问题

利用tkinter+python+pyinstaller实现了小工具的项目,没有pyinstaller打包时程序没有问题,打包后运行.exe过程中会在控制台打印错误。

Pyinstaller使用方法

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 单个py文件打包格式: pyinstaller -F test.py
  2. 多个.py文件打包命令格式如下 :
代码语言:javascript
复制
pyinstaller [主文件] -D -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]

链接:Pyinstaller参数说明 使用-D 参数打包,会在根目录下的dist目录中生成一个文件夹,存放生成的 xxx.exe文件以及相关的依赖文件 (推荐使用-D 打包,-F 是打包成单一.exe文件)

我遇到的问题

我的项目结构:

打包命令如下:

代码语言:javascript
复制
(test) D:\ProgramData\NewTachometer>pyinstaller -D -n volemeter -i ana.ico  ma
in.py -p mainFunc.py -p GlobalVar.py -p calendarModule.py -p SiftPic.py -p CarsD
ata.py -p GenerateExcel.py --hidden-import mainFunc --hidden-import GlobalVar --
hidden-import calendarModule --hidden-import SiftPic --hidden-import CarsData --
hidden-import GenerateExcel 

打包成功,没有报错:

运行.exe程序时,在控制台打印错误信息如下:

从打印信息知道,是因为没有导入win32timezone模块从而发生错误的。检查代码发现,是由于从.mdb数据库文件中读出的时间信息pywintypes.datetime(2019, 3, 12, 12,33, 48, tzinfo=TimeZoneInfo(‘GMT StandardTime’, True) 。

解决办法

解决问题: 在CarsData.py导入win32timezone模块

代码语言:javascript
复制
import win32timezone

重新打包,再运行就没问题了!!!

留下一个疑问: 为什么打包之前代码没有导入win32timezone模块但运行没有问题,打包后就有问题了? 没有搞清楚…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219198.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 用Pyinstaller打包时遇到No module named win32timezone问题
  • Pyinstaller使用方法
  • 我遇到的问题
  • 解决办法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档