1.PyInstaller原理
????PyInstaller工具可以把python解析器和脚本打包成一个可执行的文件,并不是编译成真正的机器码,打包成一个可执行文件后运行效率可能会降低,好处就是在使用者的机器上可以不用安装python和你的脚本依赖的库。 ????利用PyInstaller对指定的的脚本打包时,会先分析脚本所依赖的其他脚本,然后根据导包路径去查找,把所有相关的脚本收集起来,包括Python解析器,然后根据你的命令参数可分别生成文件夹或者打包成一个可执行文件。 ????注意:PyInstaller打包的执行文件,只能在同样的操作系统下运行。 ?
2.PyInstaller的安装
pip install PyInstaller
?
3.PyInstaller打包python程序
pyinstaller [option] xxx.py(绝对路径)
[option]
-F:只生成一个exe程序
-c:运行exe程序时,弹出交互窗口(默认)
-w:运行exe程序时,不弹出交互窗口
-i:设定exe程序图标,参数为 xxx.ico
例:
pyinstaller -F D:\project\test.py
pyinstaller -F -w D:\project\test.py
pyinstaller -F -w -i D:\project\test.ico D:\project\test.py
?
4.生成的exe程序
你在哪个目录下执行的pyinstaller命令,默认打包完成的文件或者文件夹就在该目录下。
比如在执行命令前切换目录到 E:\Pycharm\exe,则打包后的程序就在该目录下。
exe程序在dist目录下。 ?
5.注意事项
1.使用utf-8编码 2.图标文件必须是 .ico 格式 3.如果你打包的代码中用到了静态文件,如图片和资源文件,需手动复制到文件夹中,否则exe文件会报找不到文件的错 4.如果用到多进程 且 要在Windows下编译,需要加一行代码在开头:multiprocessing.freeze_support() 5.打包时要在项目所在的环境下执行打包 6.运行exe程序时,报错会闪退,需要录屏回放报错内容。一般为缺包导致 7.如果有打包错误,具体看build里的warn-pyname.txt文档
|