PyInstaller将Python应用程序及其所有依赖项打包成一个单独的包。
项目描述
PyInstaller 将 Python 应用程序及其所有依赖项打包成一个单独的包。用户可以运行打包的应用程序,无需安装 Python 解释器或任何模块。
PyInstaller 读取您编写的 Python 脚本。它分析您的代码以发现脚本执行所需的每个其他模块和库。然后,它收集所有这些文件的副本 - 包括活动的 Python 解释器! - 并将它们与您的脚本一起放在单个文件夹中,或者可选地放在单个可执行文件中。
PyInstaller 已针对 Windows、macOS 和 GNU/Linux 进行测试。然而,它不是一个交叉编译器:要创建 Windows 应用程序,请在 Windows 上运行 PyInstaller;要创建 GNU/Linux 应用程序,请在 GNU/Linux 上运行它,等等。PyInstaller 已在 AIX、Solaris、FreeBSD 和 OpenBSD 上成功使用,但不是作为持续集成测试的一部分对其进行测试。
主要优势
与任何 3.8-3.13 版本的 Python 无缝兼容。
完全多平台,并使用操作系统支持来加载动态库,从而确保完全兼容。
默认捆绑主要的 Python 包,如 numpy、PyQt5、PySide2、PyQt6、PySide6、wxPython、matplotlib 等。
默认与许多第三方包兼容。(所有使外部包工作所需的技巧都已集成。)
在 macOS 上支持代码签名。
在 Windows 上捆绑 MS Visual C++ DLL。
安装
PyInstaller 可在 PyPI 上获得。您可以通过 pip 安装它
pip install pyinstaller
要求和测试平台
- Python
3.8-3.13。请注意,Python 3.10.0 中存在一个错误,使得 PyInstaller 无法支持它。PyInstaller 也不会与 Python 3.14 的测试版本一起工作。
- Windows(32位/64位/ARM64)
PyInstaller 应该可以在 Windows 7 或更高版本上运行,但我们只正式支持 Windows 8+。
支持从 Windows 商店安装的 Python 而不使用虚拟环境,需要 PyInstaller 4.4 或更高版本。
- Linux
基于 GNU libc 的在 x86_64、aarch64、i686、ppc64le、s390x 架构上的发行版。
基于 musl libc 的在 x86_64、aarch64 架构上的发行版。
ldd:打印每个程序或共享库所需的共享库的控制台应用程序。通常可以在分布包 glibc 或 libc-bin 中找到。
objdump:显示对象文件信息的控制台应用程序。通常可以在分布包 binutils 中找到。
objcopy:复制和转换对象文件的控制台应用程序。通常也可以在分布包 binutils 中找到。
Raspberry Pi 用户在 armv5-armv7 上应将 piwheels 添加为额外的索引 URL,然后像往常一样 pip install pyinstaller。
- macOS(x86_64 或 arm64)
macOS 10.15(Catalina)或更高版本。
如果您的 Python 和所有依赖项的安装也是编译的 universal2,则支持构建 universal2 应用程序。
用法
基本用法非常简单,只需针对您的主脚本运行它
pyinstaller /path/to/yourscript.py
有关更多详细信息,请参阅 手册。
未测试的平台
以下平台已被贡献,对这些平台的任何反馈或改进都欢迎。
- FreeBSD
ldd
- Solaris
ldd
objdump
- AIX
AIX 6.1 或更高版本。PyInstaller 不会与静态链接的 Python 库一起工作。
ldd
支持以下未列出的所有其他libc实现/架构组合的Linux。
在使用任何贡献的平台之前,您需要构建PyInstaller引导加载程序。如果您已安装适当的C编译器(通常是gcc或clang)以及zlib的开发头文件,则当您执行pip install pyinstaller时,此操作将自动完成。
支持
官方调试指南:[https://pyinstaller.org/en/v6.10.0/when-things-go-wrong.html](https://pyinstaller.org/en/v6.10.0/when-things-go-wrong.html)
各种用户贡献的帮助主题:[https://github.com/pyinstaller/pyinstaller/wiki](https://github.com/pyinstaller/pyinstaller/wiki)
基于Web的Q&A论坛:[https://github.com/pyinstaller/pyinstaller/discussions](https://github.com/pyinstaller/pyinstaller/discussions)
基于电子邮件的Q&A论坛:[https://groups.google.com/g/pyinstaller](https://groups.google.com/g/pyinstaller)
本版本中的更改
您可以在手册的变更日志部分找到本版本中的详细更改列表。
项目详情
pyinstaller-6.10.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 143840f8056ff7b910bf8f16f6cd92cc10a6c2680bb76d0a25d558d543d21270 |
|
MD5 | 7c594e82591f4fc20deeda7604bc1008 |
|
BLAKE2b-256 | 5cdf30b1f66d35defa37e676556acca4eb775b49637bb73054b0c31af134cd8a |
哈希值 用于 pyinstaller-6.10.0-py3-none-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 28eca3817f176fdc19747e1afcf434f13bb9f17a644f611be2c5a61b1f498ed7 |
|
MD5 | 162a8cdc9542f8168d1aab204acc4d08 |
|
BLAKE2b-256 | fa77eeac52914f24d952524493d3190f6a383582d4abb117076f50264eba0f9e |
哈希值 用于 pyinstaller-6.10.0-py3-none-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db05e3f2f10f9f78c56f1fb163d9cb453433429fe4281218ebaf1ebfd39ba942 |
|
MD5 | d50cfca612550c7a7b34f72de91334b3 |
|
BLAKE2b-256 | ba8ff21b92a90bb48a0e59f448ff6f92a823457922207cede7ae3abedcbfb974 |
哈希值 用于 pyinstaller-6.10.0-py3-none-manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6cf876d7d93b8b4f28d1ad57fa24645cf43119c79e985dd5e5f7a801245e6f53 |
|
MD5 | aa5afde2f6cdf58ff480a7ebc6cfb808 |
|
BLAKE2b-256 | 1978604bec9cd73cd02ed29f7bd72ec25dff6eccc57554ec3ab096959fae65de |
哈希值 用于 pyinstaller-6.10.0-py3-none-manylinux2014_s390x.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b7c90c91921b3749083115b28f30f40abf2bb481ceff196d2b2ce0eaa2b3d429 |
|
MD5 | ff92d595718453abd4785f0051a63e99 |
|
BLAKE2b-256 | 6e565ce76d7dd53f8ed13d91d0ac9688b5624c849ad2dfcee18ff5709955d150 |
哈希值 用于 pyinstaller-6.10.0-py3-none-manylinux2014_ppc64le.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e9989f354ae4ed8a3bec7bdb37ae0d170751d6520e500f049c7cd0632d31d5c3 |
|
MD5 | 85b5f99e0cced6730494c4c1a817b6ef |
|
BLAKE2b-256 | 65e7452dc579bd38b50142a0886a3a0fd67aa14fb84ea0376f339a568931319c |
哈希值 用于 pyinstaller-6.10.0-py3-none-manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3398a98fa17d47ccb31f8779ecbdacec025f7adb2f22757a54b706ac8b4fe906 |
|
MD5 | 6e741250e8e77454490873c88370ddfe |
|
BLAKE2b-256 | c4444e20bf97d464cb27fd9b25321c94beb8d1f5ed7176af38fe6a22d8766d2e |
哈希值 用于 pyinstaller-6.10.0-py3-none-manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 46d75359668993ddd98630a3669dc5249f3c446e35239b43bc7f4155bc574748 |
|
MD5 | 7eebef3340ec6139fd03195a42e5b018 |
|
BLAKE2b-256 | b71c1071c69e21b27ca5b1ea185fb897a0e724e85b8c4456b0b142b0cac3c33b |
哈希值 用于 pyinstaller-6.10.0-py3-none-macosx_10_13_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d60fb22859e11483af735aec115fdde09467cdbb29edd9844839f2c920b748c0 |
|
MD5 | b97ab2d144260652938b288aa492a6e1 |
|
BLAKE2b-256 | a6fd9b3c208c9cc822555b88c6af051da5f7291f367e4337ea44b138008ba2fb |