1、问题
今天打包一个 tkinter + pymssql 的项目的时候,打包过程很顺利,但是打开软件的时候,报错 ModuleNotFoundError: No module named 'pymssql' 如下图:

2、原因
查了好多资料才知道:打包程序无法判断 pymssql 动态调用,其中的 _mssql 方法是动态调用的,就是用才调用,不会一开始就调用,于是打包程序就不知道要不要包进 exe 里面,估计打包的时候不会去尝试运行 pymssql 里面的函数,因此也无法得知动态调用的模块,解决方案就是在程序最开始手动调用,为了最小的程序开销,调用一下模块的版本信息就可以了。
3、解决
在 import pymssql 下加上
from pymssql import _mssql
from pymssql import _pymssql
import uuid
import decimal
重新打包运行,问题解决:

Python打包错误:解决ModuleNotFoundError,

文章讨论了如何在打包带有Tkinter和pymssql的Python应用时,解决ModuleNotFoundError。关键在于在程序开始时手动导入pymssql模块以确保其在打包后的exe中可用。
1206

被折叠的 条评论
为什么被折叠?



