文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Pythonpyinstaller库的安装配置教程分享

2023-05-17 14:25

关注

简要

pyinstaller模块主要用于python代码打包成exe程序直接使用,这样在其它电脑上即使没有python环境也是可以运行的。

用法

一.安装

pyinstaller属于第三方库,因此在使用的时候需提前安装

pip install pyinstaller

二.配置spec文件

1.配置生成exe程序文件夹

(1)如果不熟悉spec配置内容,可以在终端运行如下指令生成固定模板

pyinstaller --name myapp main.py  # myapp为生成的spec文件名称,main.py为打包的文件

(2)运行完后我们会看见如下几个文件,dist和build直接删除即可。我看打开myapp.spec文件可以看见配置信息。

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['main.py','hello.py'],  #注:要打包的模块,按照先后顺序运行
    pathex=['C:/Users/pythonProject'],  #注:要打包的Python源代码的路径列表。
    binaries=[], 
    datas=[],  #注:要打包的非Python资源(例如图像、配置文件等)列表。
    hiddenimports=[''requests],  #注:必需的隐藏导入列表,用于告诉PyInstaller找到其他未明确指定的依赖项。
    hookspath=[],  #注:一个路径列表,其中包含指定要自定义的钩子模块的目录。
    hooksconfig={},  #注:
    runtime_hooks=[],  #注:用于在应用程序运行时运行的Python代码文件列表。
    excludes=[],  #注:不包括在生成的可执行文件中的模块列表
    win_no_prefer_redirects=False,  #注:
    win_private_assemblies=False,
    cipher=block_cipher,  #注:用于加密Python字节码的密码。
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

#注:a.pure: 一个布尔值,指示是否生成纯Python字节码。如果为True,则PyInstaller将不包括任何二进制文件或库。

a.zipped_data: 用于包含OneFile模式下的所有Python脚本和资源的元组。

exe = EXE(
    pyz,  #注:一个PYZ实例,其中包含要打包的所有Python脚本和资源。
    a.scripts,  #注:应用程序的主Python脚本列表。
    [],
    exclude_binaries=True,
    name='myapp',  #注:生成exe可执行文件的名称
    debug=False,  #注:一个布尔值,指示是否生成调试版本的可执行文件
    bootloader_ignore_signals=False,  #注:一个布尔值,指示是否忽略启动加载器的信号。
    strip=False,  #注:一个布尔值,指示是否对可执行文件进行符号剥离。
    upx=True,  #注:一个布尔值,指示是否使用UPX压缩可执行文件
    console=True,  #注:是否开启dos窗口
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
   icon:'图标.ico'  #注:用户生成exe文件的封面,后缀必须是ico格式,转换地址:https://convertio.co/zh/download/88c5806204642c8a1c10e65b1bef9b5886f6d8/
)
coll = COLLECT(
    exe,  #注:你的Python脚本生成的可执行文件路径(通常是与spec文件同名的文件)
    a.binaries,  #注:二进制对象列表,表示其他相关二进制文件的位置以及将它们复制到输出目录的相对路径。例如,如果您的应用程序需要音频或图像文件,则可以使用此参数将其包含在可执行文件中。
    a.zipfiles,  #注:压缩文件列表,表示应该从zip文件中提取哪些文件并将它们放入输出目录。这对于打包一些必需的库或数据文件非常有用。
    a.datas,  #注:数据文件列表,这些文件不应被压缩,但应该被复制到输出目录中。例如,这可能包括配置文件、模板文件或其他类型的文本文件。
    strip=False,  #注:是否从可执行文件和库中去除调试信息。默认情况下为True,这将减小文件大小,但会使得调试更加困难。
    upx=True,  #注:是否使用UPX来压缩可执行文件和库。默认情况下为False,因为UPX可能会导致某些文件无法正常工作。
    upx_exclude=[],  #注:
    name='myapp',  #注:打包文件夹名称。
)

(3)通常我们只需要配置需要打包的模块+pathex+生成exe文件的名称+exe存在目录的名称,配置完后直接在终端输入指令进行打包。

pyinstaller  myapp.spec

(4)打包完成后在项目所在目录下可以看下dist文件,dist文件下一目录就是打包文件夹,文件夹下面就是所在的程序。这里需要注意的是,因为我们打包的是文件夹,因此发给别人使用的时候,因把整个文件夹发过去,才能正确运行。

 (5)配置要打包的模块,若模块之间存在import连接,可直接打包最终(main)运行的那个模块即可,pyinstaller会默认把main涉及的impor(.py+第三方库)全部一起打包。若两个py模块相互没有任何关联,这个时候可以打包多个。

2.配置生成独立的exe文件

(1)这里和上面步骤一样,先生成模板

pyinstaller -F main.py

(2)模板大概样式如下,字段意思和上面一致。

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(
    ['main.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='hello',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    upx_exclude=[],
    runtime_tmpdir=None,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

(3)配置完成后终端运行指令打包,打包完成后会看见dist目录下只有一个exe文件。

pyinstaller  myapp.spec

除了配置spec文件,还可以直接通过pyinstaller指令来直接打包,这里就不做多介绍了

到此这篇关于Python pyinstaller库的安装配置教程分享的文章就介绍到这了,更多相关Python pyinstaller库内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯