1、故障现象
程序在编辑环境中可以正常使用,为了将做好的报表程序COPY给同事用,所以用pyinstaller对.py程序进行了打包,但打包成EXE文件后,运行时提示错误,如下图:
2、错误分析
从错误提示可以看出:mandarin.dat 未找到 。 mandarin.dat
文件中,记录了汉字的十六进制和拼音及音调,所以无此文件就无法翻译出来汉字的拼音(本次主要使用拼音来解决汉字排序的问题)。
3、解决办法
找到编辑此文件【C:\ProgramData\Anaconda3\Lib\site-packages\xpinyin\__init__.py】,安装环境不同,目录和本文不不一定相同。根据xpinyin包的位置查找即可。
修改前:data_path = Path(__file__).resolve().with_name('Mandarin.dat')
修改后:data_path=Path().resolve().joinpath('Mandarin.dat')
修改完成后保存,重新用pyintaller生成EXE文件,并将mandarin.dat复制到EXE文件所在的目录,问题得到解决。
4、思考
哪位大神知道,为什么pyintaller不能将mandarin.dat一起打包到EXE文件中?知道的告诉我一下!Q41395696