python pyinstaller库

简要

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文件可以看见配置信息。

python  pyinstaller库

# -*- 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文件下一目录就是打包文件夹,文件夹下面就是所在的

         程序。这里需要注意的是,因为我们打包的是文件夹,因此发给别人使用的时候,因把整个文件夹发过去,

         才能正确运行。

python  pyinstaller库

 (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

python  pyinstaller库

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

 

原文链接:https://www.cnblogs.com/lihongtaoya/p/17349911.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python pyinstaller库 - Python技术站

(0)
上一篇 2023年4月25日
下一篇 2023年4月25日

相关文章

  • python-opencv如何读取图片及尺寸修改

    下面是详细的攻略: 1. 安装OpenCV 首先,我们需要安装OpenCV模块,可以通过以下命令进行安装: pip install opencv-python 安装完成后,就可以开始使用OpenCV模块。 2. 读取图片 要读取图片,可以使用OpenCV中的imread()函数。该函数的语法如下: img = cv2.imread(path, flag) 其…

    python 2023年5月18日
    00
  • Python实现测试磁盘性能的方法

    为了更好地阐述Python实现测试磁盘性能的方法的攻略,我将结合具体案例进行讲解,以下是详细步骤: 1. 安装必要的库和工具 本文所用库为psutil,首先我们需要安装该库。Windows用户可以使用以下命令进行安装: pip install psutil Linux用户可以使用以下命令进行安装: sudo pip install psutil 2. 编写测…

    python 2023年6月3日
    00
  • 如何在 Redis 中实现延迟队列?

    以下是详细讲解如何在 Redis 中实现延迟队列的完整使用攻略。 Redis 延迟队列简介 Redis 延迟队列是一种常用的消息队列,可以用于实现延迟任务。Redis 延队列特点如下: Redis 延迟队列可以实现延迟任务,即将任务推迟到指定的时间再执行。 Redis 延队列可以实现任务的重试,即在任务执行失败时,可以将任务重新放回队列中等待执行。 Redi…

    python 2023年5月12日
    00
  • 简单的Python2.7编程初学经验总结

    简单的Python2.7编程初学经验总结 引言 Python是一门简单易学的编程语言,但对于初学者来说,还是可能会遇到很多问题。本篇文章主要讲解Python2.7编程初学经验总结,希望通过此文,让初学者更好地掌握Python编程。 熟悉Python基础语法 Python基础语法包括:变量、数据类型、运算符、条件判断、循环和函数等。 以变量为例,Python中…

    python 2023年5月30日
    00
  • cmd运行python文件时对结果进行保存的方法

    当我们使用cmd运行Python文件时,有时候需要将运行结果保存到文件中,以便后续查看或进行分析。下面是Python在cmd中保存结果的方法。 方法一:使用输出重定向符号 在cmd运行Python程序时,可以使用输出重定向符号>将运行结果保存到指定文件中。具体操作如下: 在cmd中进入Python文件所在目录; 输入命令python filename.…

    python 2023年5月20日
    00
  • 如何将json数据转换为python数据

    将JSON数据转换为Python数据,需要使用Python内置的json模块。下面我将为您详细讲解转换的完整攻略: 1. 导入json模块 在Python中,使用json模块需要先导入它。 import json 2. 将JSON字符串转换为Python数据 如果要将一个JSON字符串转换为Python数据对象,可以使用json.loads()方法。 imp…

    python 2023年6月2日
    00
  • python 实现语音聊天机器人的示例代码

    当今,人工智能技术得到了飞速的发展,语音聊天机器人也越来越受到欢迎。本篇文章将介绍使用Python语言实现语音聊天机器人的示例代码。具体的操作步骤如下: 安装依赖 在开始之前,需要安装三个库:SpeechRecognition、pyaudio和pyttsx3。可以通过在命令行窗口中运行以下命令来完成: pip install SpeechRecognitio…

    python 2023年5月30日
    00
  • python实现pptx批量向PPT中插入图片

    当你需要向 PPT 中插入大量图片时,手动操作会非常繁琐,因此你可以使用 Python 的库 python-pptx 实现自动化批量插入图片。下面是具体的实现方法: 1. 安装 python-pptx 首先,在命令行下输入以下命令来安装 python-pptx: pip install python-pptx 2. 导入必要的库 在 Python 代码开头,…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部