pyinstaller流程
安装pyinstaller
在命令行中打开main.py(主文件)所在的位置
F:
cd F:\****\PycharmProjects\***
在同级目录下运行命令:
-F 打包单个文件,产生一个文件用于部署(默认),如果代码都写在一个.py文件时使用,项目有多个文件时不要使用
-D 打包多个文件,产生一个目录用于部署(默认),用于框架编写的代码打包
pyinstaller -F main.py(打包单个文件,生成build是过程文件夹,可以删除没撒用)
pyi-makespec main.py (创建spec文件:打包多个文件或者一个完整项目,需要配置spec文件)
配置spec文件详见:
解决pyinstaller打包py文件运行exe闪退等诸多疑难杂症_白金之星1717的博客-CSDN博客_pyinstaller打包exe运行闪退
pyinstaller打包python程序(多文件) - RonyJay - 博客园
配置完成后运行:
pyinstaller -D main.spec
遇到的问题
ValueError: The 'branca' package was not installed in a way that PackageLoader understands.
jinja2版本过高
pip3 uninstall jinja2
pip3 install Jinja2==2.10.1
problem accessing odoo from ubuntu terminal 18 - Stack Overflow
没找到folium包中的json文件
我的报错还不太一样,报错说不能在打包路径下找到json文件,所以我直接把python路径下的branca库完整复制到打包路径下,问题解决
ValueError('Custom tiles must have an attribution.')
python 3.x - raise Value Error('Custom files must have an attribution') - Stack Overflow
虽然暂时解决,但还没有搞清楚。问题出在folium.Map中,一般的语句
map = folium.Map(location=[53.073635, 8.806422], zoom_start=15, tiles='Stamen Terrain')
打包后就会报这个错,不清楚原因。改成指定attr后,问题解决
map = folium.Map( location=[35, 110], zoom_start=5, tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', attr="© <a href='https://ditu.amap.com/'>高德地图</a>")