解决python文件打包过大
创建虚拟环境
先安装打包工具,这一步安装pyinstaller可以跳过,因为在纯净的虚拟环境里面需要重新安装这个模块。
pip install pyinstaller
如果觉得下载太慢可以选择换源
pip install pyinstaller -i https://pypi.mirrors.ustc.edu.cn/simple
创建没有其他模块的纯净环境,大幅度减小打包exe大小
使用 Pipenv
Pipenv 是一款管理虚拟环境的命令行软件,简单来讲,它可以创建一个只在某个目录下的局部 Python 环境,而这个环境是可以和全局环境脱离开的。
pip install pipenv
选择一个需要打包的目录,当前python版本是多少就python几,不一定是python3.7.
这咯选择python环境的时候可以直接选择电脑上已经有的python版本。虚拟环境里面会是一个非常纯净的版本。
pipenv install --python 3.7
创建好的环境里面没有其他的库所以代码里面包含的库需要自己安装一下,首先进入虚拟环境,在命令行状态下(打包目录下)
pipenv shell
安装库,pyinstaller必须安装,其他的看代码里面需要什么!
pipenv install pyinstaller
pipenv install numpy
利用pyinstaller打包
介绍一下 Pyinstaller 常用的参数用法:
没有特别需要可以直接这样打包
pyinstaller -F demo.py
–distpath
-w: 指定生成 GUI 软件,也就是运行时不打开控制台
-c: 运行时打开控制台
-i : 指定打包后可执行文件的图标
–clean: 在构建之前清理PyInstaller缓存并删除临时文件
关于打包成什么样,有两种选择:
-D: 创建包含可执行文件的单文件夹包,同时会有一大堆依赖的 dll 文件,这是默认选项
-F: 只生成一个 .exe 文件,如果项目比较小的话可以用这个,但比较大的话就不推荐
如果觉得默认图标太丑可以用自己的ico图标,打包的图标需要提前转化成ico图标!
ico生成网址:https://tool.lu/favicon/
pyinstaller -F -i ./photo/xx.ico demo.py
gui程序的话最好再添加一个-w
最后exit()退出当前虚拟环境。打包好的exe文件在虚拟环境目录的dist文件下
exit()#退出虚拟环境