4.6 (2021-10-29)
特征
- 添加对 Python 3.10 的支持。(#5693)
- (Windows)
onedir
默认情况下将清单嵌入到生成的可执行文件中,以避免用户重命名可执行文件时的潜在问题(例如,当用户重命名可执行文件并尝试在重命名之前运行它时,由于激活上下文缓存而不再找到清单清单文件)。在onedir
mode中生成外部清单文件的旧行为可以使用--no-embed-manifest
命令行开关重新启用,或通过.spec 文件中的embed_manifest=False
参数 to重新启用EXE()
。(#6248) - (Windows) 尊重 Window 的 VSVersionInfo 文件中的PEP 239编码说明符。( #6259)
- 通过
importlib.resources
(python >= 3.9) 或importlib_resources
(python <= 3.8)实现用于访问文件系统资源(数据文件)的基本资源读取器。(#5616) - 运送用于基于MUSL-Linux发行版(例如高山或的OpenWRT)上预编译车轮
x86_64
和aarch64
。(#6245)
错误修正
- (macOS) 确保在独立 PKG 模式下应用可执行的预处理和后处理步骤(目标架构选择、SDK 版本调整、(重新)签名)。(#6251)
- (macOS) 强化 macOS 程序集管道以解决
codesign
macOS 10.13 High Sierra 上实用程序的问题。(#6167) - (Windows)
sysconfig
在使用 MSYS2/MINGW python 时修复特定于平台的数据模块的集合。(#6118) - (Windows) 修复使用
MinGW-w64
工具链编译引导加载程序时未处理异常对话框(窗口模式)中显示的脚本名称和异常消息。(#6199) - (Windows) 在
onedir
使用强制嵌入默认清单的MinGW-w64
工具链(例如,来自的工具链msys2
)编译引导加载程序时,修复冻结的应用程序中的问题。问题范围从与清单相关的选项(例如,uac-admin
)不工作到根本不启动的窗口冻结应用程序(带有错误消息)。(#6196)The procedure entry point LoadIconMetric could not be located...
- (Windows) 修复可选嵌入式产品版本信息资源结构中字符串的声明长度。声明的长度过长,导致在使用ctypes和 winver API读取版本信息时出现尾随垃圾字符。(#6219)
- (Windows) 删除
onefile
通过激活上下文加载冻结可执行文件清单的尝试,该操作失败并显示可在调试版本中观察到的消息。自从#3746将清单直接嵌入到 可执行文件中以来,这种方法一直无效。(#6248)An attempt to set the process default activation context failed because the process default activation context was already set.``onefile
- (Windows) 抑制
api-ms-win-core-*
DLL 的缺失库警告。(#6201) - (Windows) 容忍读取带有 unicode 字节顺序标记的 Windows VSVersionInfo 文件。(#6259)
- 修复
sys.executable
在包旁加载模式 (pkg_append=False
)下指向外部包文件而不是可执行文件的问题。(#6202) - 修复一个失控的 glob,它导致
ctypes.util.find_library("libfoo")
非确定性地选择任何匹配libfoo*
到 bundle 而不是libfoo.so
. (#6245) - 修复与 MIPS 和 loongarch64 架构的兼容性。(#6306)
- 修复
FrozenImporter.get_source()
以正确处理包的__init__.py
源文件。pytorch
当源 .py 文件被收集并可用(例如,kornia
)时,这反过来修复了使用JIT 的包的缺失源文件错误。(#6237) - 修复在使用 side-load mode (
pkg_append=False
) 与onefile
mode结合时生成的独立 pkg 文件的位置。包文件现在放在可执行文件旁边,而不是放在 .spec 文件旁边。(#6202) - 当生成规范文件,避免硬编码的规范文件的位置作为
pathex
参数传递给Analysis
。(#6254)
不兼容的变化
- (Windows) 默认情况下,清单现在以
onedir
模式嵌入到可执行文件中 。可以使用--no-embed-manifest
命令行开关或通过.spec 文件中的embed_manifest=False
参数 to 重新启用生成外部清单文件的旧行为EXE()
。(#6248)
挂钩
- (macOS) 修复与 Anaconda
PyQt5
包的兼容性。(#6181) - 添加一个钩子
pandas.plotting
以恢复与pandas
1.3.0 及更高版本的兼容性。(#5994) QtOpenGLWidgets
为PyQt6
并PySide6
收集QtOpenGLWidgets
Qt6 中引入的新模块添加一个钩子( #6310 )- 为基于 Qt5 的包(和)的
QtPositioning
和QtLocation
模块添加钩子,以确保收集到相应的插件。(#6250)PySide2``PyQt5
- 修复
PyQt5
conda 主渠道与5.9.2 的兼容性。(#6114) - 防止可能由部分
PyQt6
安装触发的基于 Qt 的包的钩子中的潜在错误。(#6141) - 更新
QtNetwork
挂钩PyQt6
并PySide6
收集tls
Qt 6.2 中引入的新插件。(#6276) - 更新
gi.repository.GtkSource
钩子以接受模块版本 hooksconfig 字典,以允许钩子与大于 3.0 的 GtkSource 版本一起使用。(#6267)
引导加载程序
- (Windows) 禁止
snprintf
阻止引导加载程序使用工具链构建的两个截断警告。(#6196)winlibs MinGW-w64
- 更新 Linux 引导加载程序交叉编译器 Dockerfile 以允许使用官方 PyPA 基础镜像代替码头交叉镜像。(#6245)