使用pyinstaller模块将python文件打包成可执行的exe文件详解

1、使用步骤

    第一步:安装包
        pip install pyinstaller==3.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
    第二步:替换..\Lib\site-packages里的PyInstaller文件(若使用时没有出问题可以跳过)
        (PyInstaller.zip文件包含在“python打包.xmind”文件中,在文章底部有获取方法)
    第三步:执行打包的方法
        (1)简单的打包
            pyinstaller  -F -w name.py
        (2)较复杂的打包
            pyi-makespec name.py
                生成一个自定义的spec文件
            pyinstaller -F name.spec
                执行spec文件进行打包

2、常用的指令参数

    -F
        pyinstaller -F name.py
        只生成一个name.exe文件。
    -D
        pyinstaller -D name.py
        默认选项,除了name.exe外,还会生成依赖文件。
    -c
        pyinstaller -c name.py
        默认选项,只对windows有效,使用控制台。
    -w
        pyinstaller -w name.py
        只对windows有效,不使用控制台。
    -p
        pyinstaller -p E:\python3.6\Lib\site-packages name.py
        设置导入路径,当打包报错,找不到某个模块时用到。
    -i
        pyinstaller -i D:\filename.icon name.py
        设置exe文件图标。
    --version-file
        pyinstaller name.py --version-file  version_info.txt
        为生成的exe程序添加版本信息

3、spec文件详解

# -*- mode: python -*-
import sys
sys.setrecursionlimit(1000) # 设置递归深度
# "RecursionError: maximum recursion depth exceeded" 出现这个错误时可增加递归深度的值

PATH = 'D:\\MyProject\\ProjectName' # 项目根路径

block_cipher = None

a = Analysis(['main.py'], # 可打包多个py文件,第一个文件为启动文件
             pathex=[PATH], # 文件路径,当打包时出现模块找不到的情况可以向此处添加模块路径
             binaries=[],
             datas=[(PATH+'\\files','files')], # 将源文件一起打包
             hiddenimports=[], # "No Module named xxx" 出现此错误时可在此加入模块名称
             hookspath=[],
             runtime_hooks=[],
             excludes=[],     # 不打包的模块,可用此方法来减小exe文件的大小
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='main', # 打包后的exe名称
          debug=False,
          strip=False,
          upx=True,
          console=False )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name='main')

4、xmind总结

5、获取xmind文件方法

扫描下面二维码,关注公众号【精讲编程语言】,回复 “PyInstaller” 即可获取xmind文件。

猜你喜欢

转载自blog.csdn.net/Wu_CaiMing/article/details/107976581