python3.6 使用pyinstaller 打包web程序的方法
官方文档连接 (https://pyinstaller.readthedocs.io/en/stable/ )
第一步,下载pywin32
首先下载pywin32,下面是下载链接,下载自己的系统版本对应的pywin32
https://github.com/mhammond/pywin32/releases
第二步,安装pyinstaller
pip install pyinstaller
第三步,打包程序
命令参数
参数 | 描述 |
---|---|
-F | 表示生成单个可执行文件 |
-w | 表示去掉控制台窗口,这在GUI界面时非常有用。如果不适用这个参数,则在运行打包后的exe时,会有一个命令行窗口,显示控制台输出 |
-p | 表示你自己自定义需要加载的类路径,一般情况下用不到 |
-i | 表示可执行文件的图标 |
进入虚拟环境后,使用命令
命令
pyinstaller -F myfile.py
其他命令示例
pyinstaller -F -w -i ..\7.ico run.py a.py
上面命令的意思是
将当前目录下的run.py 和a.py 打包成一个(-F)exe文件,运行时不显示控制台窗口(-w),指定exe文件的图标(-i)为当前目录的父级目录(..\7.ico)下的7.ico对应的图标
注意事项
- 图标好像必须要是.ico格式,我使用.icns格式的图标会报错,目前不知道原因
- web服务如果需要html、css等静态文件,可以按照项目结构,将对应的templates和static目录复制到打包后的exe文件所在目录下,就可以正常执行(具体得看你使用的web框架配置的静态文件路径与运行文件相对位置是怎样的)
- 一般情况下,我们每个项目都有自己的虚拟环境,打包exe文件时会把虚拟环境下的其他库一起打包进exe文件中,所以不用担心如何将其他库引入打包,当然你也可以选择把源码全部复制到项目目录下,在使用命令打包时,把它们都指定上(如果不嫌累的话)