将收集的 PyTables 库添加到 PyInstaller SPEC 文件

问题描述 投票:0回答:1

我正在使用 PyInstaller 构建包含 PyTables 的 python 脚本的可执行文件。 由于我已更新到最新版本,因此构建可执行文件失败。错误如下:

Error: RuntimeError: Blosc2 library not found. I looked for "libblosc2.dll, C:\Users\USER\AppData\Local\Temp_MEI10642\tables\libblosc2.dll, None"

根据这篇文章,现在需要添加表二进制文件: https://github.com/pyinstaller/pyinstaller/issues/7408

我有一个 SPEC 文件,但不知道如何添加缺少的库。我尝试过以下方法:

所以我想添加

案例1:

binaries=[('C:\\Python39\\bin\\libblosc2.dll', 'BINARY')]

错误:

RuntimeError: Blosc2 library not found. I looked for "libblosc2.dll, C:\Users\USER\AppData\Local\Temp\_MEI10642\tables\libblosc2.dll, None"

案例2:

binaries=[('C:\\Python39\\bin\\libblosc2.dll', '.')]

加载程序挂起在循环中并且不启动可执行文件。

那么,如何将“Just add --collect-binaries=tables to your pyinstaller command”正确添加到我的 SPEC 文件中?

谢谢!

系统信息: 信息:PyInstaller:6.3.0 信息:Python:3.9.7 信息:平台:Windows-10-10.0.19044-SP0 信息:表 3.9.2

pyinstaller pytables
1个回答
0
投票

我也有同样的问题。

--collect-binaries=tables
仅适用于命令行。要解决此问题,您可以将以下内容添加到您的 app.spec 文件中:

from PyInstaller.utils.hooks import collect_dynamic_libs

binaries = []
binaries += collect_dynamic_libs('tables')

a = Analysis(
    ...
    binaries=binaries,
    ...
)

如果您在成功构建应用程序后遇到加载程序卡在循环中,您可以看到以下问题加载程序卡在 PyTables 循环中

© www.soinside.com 2019 - 2024. All rights reserved.