Pyinstaller 到底在命令行cmd输出什么??

目录

背景

命令行输出如下: 

逐行分析 


背景

最近使用Pyinstaller函数打包的时候突发奇想,pyinstaller到底在命令行输出什么呢?好像能看懂一点,又好像啥也看不懂【哭死】。所以针对写的算法进行了打包,对每一行进行了解析,希望可以加深自己对打包的理解。

命令行输出如下: 

1574 INFO: PyInstaller: 6.5.0, contrib hooks: 2024.3
1574 INFO: Python: 3.10.1
1623 INFO: Platform: Windows-10-10.0.19044-SP0
1623 INFO: wrote F:\MPMS_Path\MPMS.spec
1657 INFO: Extending PYTHONPATH with paths
['F:\\MPMS_Path']
4873 INFO: checking Analysis
4873 INFO: Building Analysis because Analysis-00.toc is non existent
4873 INFO: Initializing module dependency graph...
4873 INFO: Caching module graph hooks...
4907 INFO: Analyzing base_library.zip ...
7456 INFO: Loading module hook 'hook-heapq.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
7523 INFO: Loading module hook 'hook-encodings.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
9667 INFO: Loading module hook 'hook-pickle.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
10967 INFO: Caching module dependency graph...
11151 INFO: Running Analysis Analysis-00.toc
11151 INFO: Looking for Python shared library...
11164 INFO: Using Python shared library: C:\Program Files\Python310\python310.dll
11164 INFO: Analyzing F:\MPMS_Path\MPMS.py
11176 INFO: Loading module hook 'hook-numpy.py' from 'C:\\Program Files\\Python310\\Lib\\site-packages\\numpy\\_pyinstaller'...
11712 INFO: Loading module hook 'hook-difflib.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
11900 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
12081 INFO: Loading module hook 'hook-xml.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
12669 INFO: Loading module hook 'hook-platform.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
12690 INFO: Loading module hook 'hook-sysconfig.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
13668 INFO: Loading module hook 'hook-psutil.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\_pyinstaller_hooks_contrib\\hooks\\stdhooks'...
14854 INFO: Processing module hooks...
14900 INFO: Performing binary vs. data reclassification (2 entries)
14902 INFO: Looking for ctypes DLLs
14916 INFO: Analyzing run-time hooks ...
14920 INFO: Including run-time hook 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_inspect.py'
14923 INFO: Including run-time hook 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_pkgutil.py'
14927 INFO: Processing pre-find module path hook _pyi_rth_utils from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks\\pre_find_module_path\\hook-_pyi_rth_utils.py'.
14931 INFO: Loading module hook 'hook-_pyi_rth_utils.py' from 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks'...
14932 INFO: Including run-time hook 'C:\\Program Files\\Python310\\lib\\site-packages\\PyInstaller\\hooks\\rthooks\\pyi_rth_multiprocessing.py'
14945 INFO: Looking for dynamic libraries
C:\Program Files\Python310\lib\site-packages\PyInstaller\building\build_main.py:199: UserWarning: The numpy.array_api submodule is still experimental. See NEP 47.
  __import__(package)
16278 INFO: Extra DLL search directories (AddDllDirectory): ['C:\\Program Files\\Python310\\lib\\site-packages\\numpy.libs']
16278 INFO: Extra DLL search directories (PATH): []
17035 INFO: Warnings written to F:\MPMS_Path\build\MPMS\warn-MPMS.txt
17122 INFO: Graph cross-reference written to F:\MPMS_Path\build\MPMS\xref-MPMS.html
17166 INFO: checking PYZ
17166 INFO: Building PYZ because PYZ-00.toc is non existent
17167 INFO: Building PYZ (ZlibArchive) F:\MPMS_Path\build\MPMS\PYZ-00.pyz
17903 INFO: Building PYZ (ZlibArchive) F:\MPMS_Path\build\MPMS\PYZ-00.pyz completed successfully.
17926 INFO: checking PKG
17927 INFO: Building PKG because PKG-00.toc is non existent
17927 INFO: Building PKG (CArchive) MPMS.pkg
17943 INFO: Building PKG (CArchive) MPMS.pkg completed successfully.
17944 INFO: Bootloader C:\Program Files\Python310\lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\run.exe
17945 INFO: checking EXE
17945 INFO: Building EXE because EXE-00.toc is non existent
17945 INFO: Building EXE from EXE-00.toc
17946 INFO: Copying bootloader EXE to F:\MPMS_Path\build\MPMS\MPMS.exe
17955 INFO: Copying icon to EXE
17963 INFO: Copying 0 resources to EXE
17963 INFO: Embedding manifest in EXE
17972 INFO: Appending PKG archive to EXE
17976 INFO: Fixing EXE headers
18062 INFO: Building EXE from EXE-00.toc completed successfully.
18065 INFO: checking COLLECT
18065 INFO: Building COLLECT because COLLECT-00.toc is non existent
18065 INFO: Building COLLECT COLLECT-00.toc
18257 INFO: Building COLLECT COLLECT-00.toc completed successfully.

逐行分析 

1574 INFO: PyInstaller: 6.5.0, contrib hooks: 2024.3

  • INFO: 表示这是一个信息性消息,而不是警告或错误。
  • PyInstaller: 6.5.0: 表示你正在使用的PyInstaller版本是6.5.0。
  • contrib hooks: 2024.3: 这可能指的是PyInstaller使用的贡献钩子(contrib hooks)的版本或某种相关的标识符。贡献钩子通常用于扩展PyInstaller的功能,支持更多的库或框架。

Python生态系统中存在着大量的第三方库和框架,这些库和框架的打包方式和依赖关系可能各不相同。PyInstaller作为一个通用的Python打包工具,需要一种机制来理解和处理这些库和框架的打包需求。contrib hooks就是为了解决这个问题而存在的。通过编写和贡献钩子,PyInstaller的社区成员可以针对特定的库或框架提供定制化的打包解决方案,从而确保这些库或框架能够正确地被PyInstaller打包。

1574 INFO: Python: 3.10.1

  • 这行信息告诉你PyInstaller正在使用的Python版本是3.10.1。

1623 INFO: Platform: Windows-10-10.0.19044-SP0

  • 这行信息描述了PyInstaller正在运行的操作系统平台。在这里,它运行在Windows 10上,具体的版本号是10.0.19044(这通常是操作系统的内部版本号),并且没有服务包(SP0)。

1623 INFO: wrote F:\MPMS_Path\MPMS.spec

  • PyInstaller创建了一个.spec文件,该文件是一个脚本,用于指定打包过程的参数和选项。在这里,它被保存在F:\MPMS_Path\MPMS.spec路径下。这个文件对于后续的打包操作(例如,如果你想要修改某些设置)可能是有用的。

1657 INFO: Extending PYTHONPATH with paths ['F:\MPMS_Path']

  • PyInstaller正在扩展Python的搜索路径(PYTHONPATH),以便在查找模块和依赖项时包括F:\MPMS_Path这个目录。这通常是为了确保PyInstaller可以找到你的项目中的所有文件和依赖项。

4873 INFO: checking Analysis

  • PyInstaller正在检查其之前是否已经执行过分析步骤(Analysis),这是打包过程中的一个关键步骤,用于确定你的Python脚本需要哪些模块和依赖项。

4873 INFO: Building Analysis because Analysis-00.toc is non existent

  • 因为没有找到之前分析步骤生成的Analysis-00.toc文件(这个文件通常包含了分析步骤的结果),所以PyInstaller决定重新执行分析步骤。.toc文件是一个目录文件,用于列出分析过程中确定的所有文件和模块。

4873 INFO: Initializing module dependency graph...

  • PyInstaller正在初始化一个模块依赖图。这个图描述了你的Python脚本所依赖的所有模块以及它们之间的依赖关系。这对于确定需要打包哪些文件至关重要。

4873 INFO: Caching module graph hooks...

  • PyInstaller正在缓存模块图钩子(hooks)。这些钩子用于定制PyInstaller如何处理特定的模块或库。缓存这些钩子可以提高后续打包操作的性能。

4907 INFO: Analyzing base_library.zip ...

  • PyInstaller正在分析Python的base_library.zip文件。这个文件包含了Python标准库的一部分,PyInstaller需要分析它来确定是否需要打包其中的某些模块或文件。

7456 INFO: Loading module hook 'hook-heapq.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 这一行表明PyInstaller正在加载一个名为hook-heapq.py的钩子,该钩子位于PyInstaller的安装目录下的hooks文件夹中。这个钩子可能包含关于如何处理Python标准库中的heapq模块的指令。

heapq模块是Python标准库的一部分,用于实现堆队列算法(如最小堆)。

由于我导入了numpy库,其内部使用了heapq模块,那么PyInstaller在分析这个库的依赖关系时就会发现并包含heapq。此为隐式依赖。

7523 INFO: Loading module hook 'hook-encodings.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 与上一行类似,这一行表明PyInstaller正在加载hook-encodings.py钩子,用于处理与Python编码相关的模块。

当你在使用 Python 时,处理字符串和字节流是不可避免的。Python 的 str 类型通常用于处理 Unicode 字符串,而 bytes 类型则用于处理原始字节数据。encodings 模块提供了在 Unicode 字符串和字节流之间进行转换的功能。

9667 INFO: Loading module hook 'hook-pickle.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 这一行表明PyInstaller正在加载hook-pickle.py钩子,用于处理Python的pickle模块,该模块用于序列化和反序列化Python对象结构。

pickle模块是Python标准库的一部分,它用于序列化和反序列化Python对象结构

这是Python中一种常见的数据持久化方法,即将对象状态信息转换为一种可以存储或传输的格式,并在需要时恢复这些对象。

序列化(Serialization)

序列化是将数据结构或对象状态转换为可以存储或传输的格式的过程。在Python中,这通常意味着将对象转换为一个字节序列,这个字节序列包含该对象的“快照”或表示形式。序列化后的数据可以写入磁盘文件、发送到网络上的另一台机器,或者存储在数据库中。

反序列化(Deserialization)

反序列化是序列化的逆过程,即将序列化后的数据(如字节序列)转换回原始的数据结构或对象。在Python中,这意味着从字节序列中读取数据,并使用该数据重新构建原始Python对象。

10967 INFO: Caching module dependency graph...

  • PyInstaller正在缓存模块依赖关系图。这个图描述了Python脚本所依赖的所有模块以及它们之间的依赖关系。缓存这个图可以提高后续打包操作的性能。

11151 INFO: Running Analysis Analysis-00.toc

  • PyInstaller正在执行分析步骤,并生成一个名为Analysis-00.toc的文件。这个文件包含了分析的结果,即需要打包的所有文件和模块的信息。

11151 INFO: Looking for Python shared library...

  • PyInstaller正在查找Python的动态链接库(DLL)。这个库是Python解释器的一部分,需要被打包到可执行文件中以便在没有Python解释器的环境中运行。

11164 INFO: Using Python shared library: C:\Program Files\Python310\python310.dll

  • PyInstaller找到了Python的动态链接库,并决定使用位于C:\Program Files\Python310\python310.dll的这个库。

11164 INFO: Analyzing F:\MPMS_Path\MPMS.py

  • PyInstaller开始分析你的主Python脚本MPMS.py,以确定它需要哪些模块和依赖项。

11176 INFO: Loading module hook 'hook-numpy.py' from 'C:\Program Files\Python310\Lib\site-packages\numpy\_pyinstaller'...

  • PyInstaller正在加载一个特殊的钩子来处理NumPy库。由于NumPy是一个复杂的库,具有许多特定的依赖项和文件,因此需要一个专门的钩子来确保它被正确地打包。

11712 INFO: Loading module hook 'hook-difflib.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'..

  • PyInstaller正在加载一个钩子来处理Python标准库中的difflib模块。

difflib 是 Python 标准库中的一个模块,它提供了类和方法来比较序列(包括字符串)之间的差异。这个模块通常用于代码比较、文件比较等场景,以生成两个文本或数据序列之间的差异报告。

11900 INFO: Loading module hook 'hook-multiprocessing.util.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 加载一个钩子来处理与multiprocessing.util模块相关的内容。

12081 INFO: Loading module hook 'hook-xml.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 加载一个钩子来处理与XML处理相关的模块和库。

12669 INFO: Loading module hook 'hook-platform.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 加载一个钩子来处理与platform模块相关的内容,该模块提供了许多与平台相关的信息。

platform模块是Python标准库的一部分,它提供了很多函数用于获取平台相关的信息,如运行的操作系统、硬件架构等。 

12690 INFO: Loading module hook 'hook-sysconfig.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • 加载一个钩子来处理与sysconfig模块相关的内容

sysconfig模块是Python标准库的一部分,它提供了对Python安装配置信息的访问。这个模块通常用于在编译和安装扩展模块时获取编译参数和路径信息。 

13668 INFO: Loading module hook 'hook-psutil.py' from 'C:\Program Files\Python310\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'...

  • 这一行表示PyInstaller正在加载一个名为hook-psutil.py的钩子,用于处理psutil库。这个钩子可能包含了如何正确处理psutil模块及其依赖项的指令,因为psutil是一个跨平台库,用于获取系统利用率(CPU、内存、磁盘、网络、传感器等)和正在运行的进程的信息。

14854 INFO: Processing module hooks...

  • PyInstaller开始处理所有已加载的模块钩子。

14900 INFO: Performing binary vs. data reclassification (2 entries)

  • PyInstaller正在重新分类某些文件,确定它们是二进制文件还是数据文件。这是为了正确地打包它们。

14902 INFO: Looking for ctypes DLLs

  • PyInstaller正在查找可能需要的ctypes动态链接库(DLLs)。ctypes是一个Python库,用于加载和调用共享库中的函数。

14916 INFO: Analyzing run-time hooks ...

  • PyInstaller正在分析运行时钩子。这些钩子是在可执行文件运行时执行的Python脚本,通常用于设置环境或导入必要的模块。

14920 INFO: Including run-time hook 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_inspect.py'

  • PyInstaller正在包括一个运行时钩子,用于处理与inspect模块相关的功能。

14923 INFO: Including run-time hook 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py'

  • 同样,PyInstaller正在包括一个与pkgutil模块相关的运行时钩子。

14927 INFO: Processing pre-find module path hook _pyi_rth_utils from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-_pyi_rth_utils.py'.

  • PyInstaller正在处理一个预处理钩子,该钩子在查找模块路径之前运行。这个特定的钩子与_pyi_rth_utils相关。

14931 INFO: Loading module hook 'hook-_pyi_rth_utils.py' from 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks'...

  • PyInstaller正在加载一个与_pyi_rth_utils相关的模块钩子。

14932 INFO: Including run-time hook 'C:\Program Files\Python310\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_multiprocessing.py'

  • PyInstaller正在包括一个与multiprocessing模块相关的运行时钩子。

14945 INFO: Looking for dynamic libraries

  • PyInstaller正在查找可能需要的其他动态链接库。

C:\Program Files\Python310\lib\site-packages\PyInstaller\building\build_main.py:199: UserWarning: The numpy.array_api submodule is still experimental. See NEP 47.

  • 这是一个警告,指出numpy.array_api子模块仍然是实验性的。NEP 47是NumPy增强提案的一个编号,描述了numpy.array_api标准。你可以忽略这个警告,除非它与你的程序有直接的关联。

16278 INFO: Extra DLL search directories (AddDllDirectory): ['C:\Program Files\Python310\lib\site-packages\numpy.libs']

  • PyInstaller在搜索DLL时会额外查看指定的目录,这里包括numpy.libs目录,因为NumPy可能包含一些需要的DLLs。

16278 INFO: Extra DLL search directories (PATH): []

  • 除此之外,PyInstaller还会在系统的PATH环境变量中搜索DLLs,但这里并没有额外的目录被添加。

PyInstaller会搜索指定的目录(在PATH环境变量中定义的目录)来查找这些DLL文件。

Extra DLL search directories (PATH): []

这个日志信息表明当前没有额外的搜索目录被指定,PyInstaller将只搜索默认的目录。 

17035 INFO: Warnings written to F:\MPMS_Path\build\MPMS\warn-MPMS.txt

  • 这一行表示PyInstaller在构建过程中产生的警告信息已经被写入到一个文本文件中,该文件的路径是 F:\MPMS_Path\build\MPMS\warn-MPMS.txt。你可以查看这个文件以获取关于构建过程中可能遇到的问题或潜在问题的更多信息。

17122 INFO: Graph cross-reference written to F:\MPMS_Path\build\MPMS\xref-MPMS.html

  • PyInstaller创建了一个交叉引用(cross-reference)的HTML文件,其中包含了程序中所有模块和依赖项之间的关系图。这个文件可以帮助你更好地理解程序的结构和依赖关系。文件的路径是 F:\MPMS_Path\build\MPMS\xref-MPMS.html

17166 INFO: checking PYZ

  • PyInstaller正在检查PYZ(Python Zipped Archive)文件。PYZ文件是一个包含Python字节码的zip文件,用于在可执行文件中嵌入Python代码。

17166 INFO: Building PYZ because PYZ-00.toc is non existent

  • 因为PYZ的目录文件(toc文件)不存在,所以PyInstaller需要构建一个新的PYZ文件。toc文件是一个文本文件,它包含了PYZ文件中所有文件的列表和相关信息。

17167 INFO: Building PYZ (ZlibArchive) F:\MPMS_Path\build\MPMS\PYZ-00.pyz

  • PyInstaller开始构建PYZ文件,并使用Zlib进行压缩。构建完成后的PYZ文件将被保存在指定的路径下。

17903 INFO: Building PYZ (ZlibArchive) F:\MPMS_Path\build\MPMS\PYZ-00.pyz completed successfully.

  • PYZ文件的构建过程已经成功完成。

17926 INFO: checking PKG

  • PyInstaller正在检查PKG(Package)文件。PKG文件是PyInstaller用来打包程序资源的文件,包括图像、文本文件、二进制文件等。

17927 INFO: Building PKG because PKG-00.toc is non existent

  • 这一行表示因为PKG的目录文件(toc文件)不存在,所以PyInstaller需要构建一个新的PKG文件。PKG文件是PyInstaller用来打包程序资源的文件,比如图片、文本文件、二进制文件等。

17927 INFO: Building PKG (CArchive) MPMS.pkg

  • PyInstaller开始构建PKG文件,并指定了文件名(MPMS.pkg)和所使用的归档格式(CArchive)。

17943 INFO: Building PKG (CArchive) MPMS.pkg completed successfully.

  • PKG文件的构建过程已经成功完成。

17944 INFO: Bootloader C:\Program Files\Python310\lib\site-packages\PyInstaller\bootloader\Windows-64bit-intel\run.exe

  • 这一行显示了PyInstaller所使用的引导加载器(bootloader)的路径。引导加载器是一个小的可执行文件,它负责加载Python解释器和你的程序代码。

17945 INFO: checking EXE

  • PyInstaller正在检查EXE文件的存在和状态。EXE文件是最终构建的可执行文件。

17945 INFO: Building EXE because EXE-00.toc is non existent

  • 因为EXE的目录文件(toc文件)不存在,所以PyInstaller需要构建一个新的EXE文件。

17945 INFO: Building EXE from EXE-00.toc

  • PyInstaller开始从EXE的toc文件构建EXE文件。

17946 INFO: Copying bootloader EXE to F:\MPMS_Path\build\MPMS\MPMS.exe

  • PyInstaller将引导加载器复制到指定的路径,并命名为MPMS.exe。这个文件将成为你的程序的可执行文件。

17955 INFO: Copying icon to EXE

  • 如果为PyInstaller指定了图标文件,这一行表示PyInstaller正在将图标复制到EXE文件中。

17963 INFO: Copying 0 resources to EXE

  • 没有额外的资源文件被复制到EXE中。如果有额外的数据文件或资源文件,它们通常会被包含在这一步。

17963 INFO: Embedding manifest in EXE

  • PyInstaller正在将清单(manifest)嵌入到EXE文件中。清单是一个XML文件,它包含了关于程序兼容性、安全设置和其他Windows元数据的信息。

17972 INFO: Appending PKG archive to EXE

  • PyInstaller正在将之前构建的PKG文件附加到EXE文件中,这样EXE文件就包含了程序的所有资源。

17976 INFO: Fixing EXE headers

  • PyInstaller正在修复或设置EXE文件的头部信息,确保它可以在目标系统上正确运行。

18062 INFO: Building EXE from EXE-00.toc completed successfully.

  • EXE文件的构建过程已经成功完成。

18065 INFO: checking COLLECT

  • PyInstaller正在检查COLLECT步骤的状态。COLLECT步骤通常用于收集在构建过程中产生的额外文件或目录。

18065 INFO: Building COLLECT because COLLECT-00.toc is non existent

  • 因为COLLECT的目录文件(toc文件)不存在,所以PyInstaller需要执行COLLECT步骤。

18065 INFO: Building COLLECT COLLECT-00.toc

  • PyInstaller开始执行COLLECT步骤,并根据COLLECT的toc文件收集文件。

18257 INFO: Building COLLECT COLLECT-00.toc completed successfully.

  • COLLECT步骤已经成功完成。

  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值