Python教程:使用PyInstaller打包Python应用

PyInstaller通过打包Python代码和依赖,用户只需解压文件即可运行应用,类似静态语言编译,与Java分发带JRE的jar包相似。然而,输出与操作系统和Python版本绑定,不包含操作系统自带库。且无法实现完全的代码隐藏,输出应用包含已编译的pyc文件,反向编译仍有可能。使用PyInstaller打包应用的步骤:编写应用代码,使用...
Python教程:使用PyInstaller打包Python应用
Python应用共享时,用户需先安装Python及依赖,操作繁琐且技术门槛较高。PyInstaller作为第三方工具,简化了这一过程。

PyInstaller通过打包Python代码和依赖,用户只需解压文件即可运行应用,类似静态语言编译,与Java分发带JRE的jar包相似。然而,输出与操作系统和Python版本绑定,不包含操作系统自带库。且无法实现完全的代码隐藏,输出应用包含已编译的pyc文件,反向编译仍有可能。

使用PyInstaller打包应用的步骤:编写应用代码,使用命令行工具PyInstaller打包应用代码和依赖。打包后可作为文件夹或文件分发给其他人,用户无需安装Python或模块即可运行。

注意,PyInstaller打包的输出与操作系统和Python版本相关联,需在特定操作系统上使用特定版本的Python打包应用。应用不包含操作系统自带库,依赖系统提供。PyInstaller不支持隐藏源代码,使用Cython编译Python代码为C代码,再编译为机器码,可实现更高程度的代码隐藏。

下面是一些使用PyInstaller打包应用的示例:

### 示例1: 最简单的使用方法

假设应用代码包含一个简单的Tkinter应用,没有任何第三方依赖。

建立并进入虚拟环境,安装PyInstaller。执行打包命令。

查看dist目录下生成的文件,包含可执行文件和运行时依赖文件夹。将其压缩发送给用户,用户解压即可直接运行。

若希望生成一个单独的可执行文件,可增加一个选项将运行时依赖打包至文件。

运行此可执行文件时,会显示一个额外的Console窗口。对于GUI应用,可采用两种方法移除此窗口。

### 示例2: 多文件应用

将单文件应用拆分为多个文件,分别命名为multi_1.py和multi_2.py。打包应用时,只需指定启动文件即可。

### 示例3: 有外部依赖的应用

编写一个包含外部依赖的应用,如one_file_dep.py。在打包前,通过requirements.txt文件管理依赖,执行打包命令时,一并安装依赖。

在打包过程中,使用--log-level=DEBUG选项查看构建过程中的依赖图。将生成的.dot文件转换为图片,以便更直观地查看依赖关系。

总结了使用PyInstaller打包Python应用的流程、注意事项及示例,希望对开发者在共享应用时提供帮助。2024-09-26
mengvlog 阅读 8 次 更新于 2025-07-19 09:24:12 我来答关注问题0
  •  蓝韵文化传媒 将文件夹弄成exe后缀

    将文件夹弄成exe后缀(将文件夹弄成exe后缀怎么办)一、在cmd命令行执行安装pyinstaller工具pip install pyinstaller二、下载安装pyinstaler运行时所需windows扩展:pywin32https://github.com/mhammond/pywin32/releases选择最新版的下载,注意选择与python版本和位数对应的如32位python3.7.4对应电脑 下载:【pywin32-223.wi...

  •  机器1718 ValueError: buffer source array is read-only

    **kwargs) 117# update the docstring of the returned function 118update_wrapper(out,self.fn)~/.local/lib/python3.6/site-packages/sklearn/pipeline.pyinpredict_proba(self, X) 469Xt=X 470for_,name,transforminself._iter(with_final=False):--> 471 Xt=transform.trans...

  •  wenjie1024 python 3.6.0,Pyinstaller:3.2.1打包出现的:IndexError: tuple index out of range

    pip install https://github.com/pyinstaller/pyinstaller/tarball/develop 安装最新版PyInstaller 3.3.dev0,应该可以解决.

檬味博客在线解答立即免费咨询

Python相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部