zoukankan      html  css  js  c++  java
  • Python 使用PyInstaller打包发布

    打包发布

    1.安装插件PyInstaller

     pip install PyInstaller 

    2.在目录根目录内新增main.spec文件(打包脚本)

     1 # -*- mode: python ; coding: utf-8 -*-
     2 
     3 block_cipher = None
     4 
     5 py_files = ['main.py',
     6             'XXX\XX.py',
     7             'YYYY\YYYYYY.py'
     8             ]
     9 add_files = [
    10     ('chromedriver.exe','.'),  # .表示将资源文件复制到打包文件的根目录
    11     ('AppSettings.ini','.'),
    12     ('doc\*.txt','doc'), 
    13     ('images\my.png','images'),
    14     ]
    15 a = Analysis(py_files,         #所有脚本文件路径
    16              pathex=['E:\XX\XX'], #项目根目录
    17              binaries=[],
    18              datas=add_files ,  #打包资源文件(图片、文档、视频等)
    19              hiddenimports=[],
    20              hookspath=[],
    21              runtime_hooks=[],
    22              excludes=[],
    23              win_no_prefer_redirects=False,
    24              win_private_assemblies=False,
    25              cipher=block_cipher,
    26              noarchive=False)
    27 pyz = PYZ(a.pure, a.zipped_data,
    28              cipher=block_cipher)
    29 exe = EXE(pyz,
    30           a.scripts,
    31           [],
    32           exclude_binaries=True,
    33           name='test',   #打包后exe名称
    34           debug=False,
    35           bootloader_ignore_signals=False,
    36           strip=False,
    37           upx=True,
    38           console=True )  #是否显示命令窗口,默认true
    39 coll = COLLECT(exe,
    40                a.binaries,
    41                a.zipfiles,
    42                a.datas,
    43                strip=False,
    44                upx=True,
    45                upx_exclude=[],
    46                name='test')  #打包后文件夹名称

    3.执行打包命令

     pyinstaller -F main.spec 

    4.完成后会在项目内出现build及dist文件夹,打包文件在dist文件夹内

    PS:

    也可以不写spec,直接执行-F命令强制打包。但是需要打包的项目如果有资源文件及多个脚本文件依赖时,会出现打包丢失文件。所以建议按照标准打包。

    直接打包exe命令(main为入口py):

    pyinstaller -F main.py

    参考:https://www.cnblogs.com/the3times/p/12386007.html

  • 相关阅读:
    Linux登录出现modle is unknow
    django表单
    django中的站点管理
    ubuntu apache2服务器配置
    django安装和卸载
    Eclipse新版 syso无法自动补全的解决方法
    jetty启动报错Unsupported major.minor version 51.0
    Sencha Touch2 时间轴ListPanel
    使用css3伪元素制作时间轴并且实现鼠标选中高亮效果
    JAVA数据结构系列 栈
  • 原文地址:https://www.cnblogs.com/JHelius/p/12619169.html
Copyright © 2011-2022 走看看