最近在编写python程序之后,总想着能打包成exe文件,分享给小伙伴使用,但是查阅了许多文档,总感觉没有讲述清楚pyinstaller的常用打包方法。尤其是针对,多个目录,多个文件的项目打包。
因此,在趟过许多坑后,决定把最终试验OK的基本操作做一次记录。如下:
成功案例
pyinstaller -F -i win.ico -w main_UI.py -p …\control; -p …\gui;
准备工作
@@下载最新版的pyinstaller
方法1:
pip3 install pyinstaller
方法2:
git clone https://github.com/dkw72n/pyinstaller.git
python setup.py install
(说是此版本可以解决运行目录包含中文问题)
常见打包场景
@@单个目录,单个文件
pyinstaller main.py
@@单个目录,多个文件,使用-p参数
pyinstaller main.py -p aaa.py -p bbb.py -p …\ccc.py
@@多个目录,多个文件
##注意目录以分号结尾
pyinstaller -w main_UI.py -p …\control; -p …\gui;
参数使用
-p 添加搜索路径,让其找到对应的库
pyinstaller.py -F -p C:\python27; …\demo.py
#注意当前目录是我在下一级目录里
-i 改变生成程序的icon图标
pyinstaller.py -F -p C:\python27; -i …\a.ico …\demo.py
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认)
-w –windowed, –noconsole 使用窗口,无控制台
总结
生成单一的exe文件:
pyinstaller.py -F …\BlogsToWordpress\BlogsToWordpress.py
添加必要的搜索路径:(注意-p后面的部分,是依赖库所在的多个目录。根据自己项目进行修改)
pyinstaller.py -F -p D:\tmp\tmp_dev;D:\tmp\tmp_dev_root\python\tutorial_summary; ..\BlogsToWordpress\BlogsToWordpress.py
添加必要的搜索路径,且带图标:
pyinstaller.py -F
-p D:\tmp\tmp_dev_root\python\tutorial_summary\make_exe\BlogsToWordpress\libs;D:\tmp\tmp_dev_root\python\tutorial_summary\make_exe\BlogsToWordpress\libs\crifan;
-i ..\BlogsToWordpress\BlogsToWordpress.ico
..\BlogsToWordpress\BlogsToWordpress.py