创建虚拟环境
python -m venv xxxx
激活虚拟环境
cd xxx/Scripts
activate
安装如下的包,如有其他的包,应对应好版本
attrs23.1.0
certifi2022.12.7
click8.1.3
click-plugins1.1.1
cligj0.7.2
colorama0.4.6
Fiona1.9.3
geopandas0.12.2
importlib-metadata6.5.0
munch2.5.0
numpy1.24.2
packaging23.1
pandas2.0.0
pyproj3.5.0
python-dateutil2.8.2
pytz2023.3
shapely2.0.1
six1.16.0
tzdata2023.3
zipp3.15.0
安装好之后,开始利用pyinstaller打包
pyinstaller -D xxx.py
注意,打包可能不会出现错误
但是打包后运行时可能会有以下错误:
1.ogr引用
2._network
解决办法:
1、由于错误各种各样,推荐先问chatgpt
2、仔细阅读pyinstaller打包时的warning,实际上那就是ERROR!!!!只是在你运行时才会报错
3、如果是.dll或者_network这种找不到
打开pyproj、shapely、fiona包所在的目录
按名称排序可以看到有一个和他相同名称,后缀为.dll的文件夹
比如 pyproj文件夹和它在一起的就会有pyproj.dll文件夹
将后缀为.dll的文件夹里的内容拷贝到没有.dll的后缀文件夹里,将原来打包的程序删除后重新打包
pyinstaller -D xxx.py
运行成功
注:
1、原因是因为,pyinstaller不会去专门的dll文件夹里寻找所需要的插件,故出现这种找不到模块的错误,可以看看是否是有同名文件夹,只是后缀不一样,如果是,复制过来即可
2、解决方法多种多样,此方法只适合一次打包任务,如果有很多打包任务,建议还是从环境和pyinstaller的设置入手