首先以下是flask系统文件目录,其中config.py文件在app目录层级下:
1、使用pyinstaller -F run.py,出现报错提示:No module named 'pkg_resources.py2_warn' [30316] Failed to execute script pyi_rth_pkgres
2、此时执行pip install语句解决此报错(使用了阿里源):pip install -i https://mirrors.aliyun.com/pypi/simple -U --pre setuptools
3、之后继续使用pyinstaller -F run.py 打包,打包成功后使用cmd窗口运行exe文件,继续报错:
ImportError: module 'app' has no attribute 'config' [528520] Failed to execute script run
4、这是没有将config文件打包进这个exe程序,执行以下打包程序解决,顺带将前端资源一起打包进该exe文件:
pyinstaller -F --add-data="app\static;app\static" --add-data="app\templates;app\templates" --add-data="app\config.py;app" run.py
5、打包成功后,执行exe程序,可喜可贺,系统成功运行了。
6、好景不长,访问网页发现提示数据接口异常,排查发现后端报错提示ModuleNotFoundError: No module named 'pymysql'
7、没有找到pymysql模块,实际上系统是使用pip install 安装过了pymysql模块。
这是因为该系统没有引用pymysql模块,但是在config.py中使用该模块连接了数据库。
解决方式就是在run.py中加入一行 import pymysql就行:
8、重新进行打包pyinstaller -F --add-data="app\static;app\static" --add-data="app\templates;app\templates" --add-data="app\config.py;app" run.py
打包后执行exe程序,访问网页,数据出现,成功!至此,flask打包已完成。