大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
用Pyinstaller打包时遇到No module named win32timezone问题
利用tkinter+python+pyinstaller实现了小工具的项目,没有pyinstaller打包时程序没有问题,打包后运行.exe过程中会在控制台打印错误。
Pyinstaller使用方法
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 单个py文件打包格式: pyinstaller -F test.py
- 多个.py文件打包命令格式如下 :
pyinstaller [主文件] -D -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]
链接:Pyinstaller参数说明
使用-D 参数打包,会在根目录下的dist目录中生成一个文件夹,存放生成的 xxx.exe文件以及相关的依赖文件 (推荐使用-D 打包,-F 是打包成单一.exe文件)
我遇到的问题
我的项目结构:
打包命令如下:
(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模块
import win32timezone
重新打包,再运行就没问题了!!!
留下一个疑问: 为什么打包之前代码没有导入win32timezone模块但运行没有问题,打包后就有问题了? 没有搞清楚…
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219198.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...