Pyinstaller¶
- 安装依赖
pip install pyinstaller
- 打包
.\venv\Scripts\pyinstaller.exe --onefile --add-data "lib;lib" --add-data "conf.yaml;." --icon=1.jpg --name=test main.py 其中,--add-data "lib;lib"添加当前lib下的c++依赖库到打包后的lib目录下;--add-data "conf.yaml;."添加当前的conf.yaml文件到打包后的可执行文件路径下; --icon=1.jpg设置执行文件图标,支持icon/png/jpg等;--name=test设置可执行文件名。
- 输出路径
在dist文件夹下
- 隐藏dos窗口
pyinstaller --onefile --noconsole your_script.py
- 发布版本打包命令
1)无窗口:.\venv\Scripts\pyinstaller.exe --onefile --add-data "lib;lib" --icon=1.jpg --name=test --noconsole main.py 2)窗口:.\venv\Scripts\pyinstaller.exe --onefile --windowed --name test main.py 特别注意: 1)有些名字打包后程序的图标不生效,比如 pyinstaller.exe -F -w --onefile --icon=1.ico --name=buffertool main.py(不生效) pyinstaller.exe -F -w --onefile --icon=1.ico --name=Buffertool main.py(不生效) pyinstaller.exe -F -w --onefile --icon=1.ico --name=bufft main.py(生效,就改了个名字) 2)如果打包时直接用jpg图片,则需要安装 pillow 模块。
- 问题
1)双击可执行文件运行后,如果遇到错误,闪退看不到错误信息? 不要直接双击可执行文件,而是打开命令提示符(CMD),然后导航到包含可执行文件的目录,手动运行它,这样可以在命令行窗口中查看错误信息,而不会闪退; 可以在打包时使用--log-level选项来生成日志文件,pyinstaller --onefile --log-level=DEBUG your_script.py 这将生成一个your_script.log文件,里面包含详细的运行信息。 2)加密打包(比pyc安全,未测试) pyarmor pack -x " --onefile" path/to/your/python/files