【已解决】Python打包文件执行报错:ModuleNotFoundError: No module named 'pymssql'
- 1、问题
- 2、原因
- 3、解决
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
重新打包运行,问题解决: