项目

一般

简介

Pyinstaller

  1. 安装依赖
    pip install pyinstaller
    
  2. 打包
    .\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设置可执行文件名。
    
  3. 输出路径
    在dist文件夹下
    
  4. 隐藏dos窗口
    pyinstaller --onefile --noconsole your_script.py
    
  5. 发布版本打包命令
    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 模块。
    
  6. 问题
    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