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

2022-11-17 15:16:53 浏览数 (1)

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

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

    • Pyinstaller使用方法
    • 我遇到的问题
    • 解决办法

利用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:ProgramDataNewTachometer>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

0 人点赞