【问题标题】:Python - 'No suitable library found for ods' PyinstallerPython - '没有找到适合 ods 的库' Pyinstaller
【发布时间】:2017-01-26 14:12:15
【问题描述】:

我编写了一个脚本,它打开并从 .ods 文件中获取值并创建一个新工作表并使用 pyexcelpyexcel_ods3 写入值。转换为可执行文件后,我收到此错误 No suitable library found for ods

代码:

    sheet = pyexcel.get_sheet(file_name="sample.ods")

pyexcel - 0.4.2 pyexcel-io - 0.3.1 pyexcel-ods3 - 0.3.0 PyInstaller - 3.2.1

PS:我尝试了隐藏导入和挂钩。我做了一些工作并认为这是由于__import__ in manager.py ofpyexcel_io

【问题讨论】:

  • 我们不知道你写了什么。
  • 对不起。这是我第一次提问。我的脚本在将其作为脚本运行时可以工作,但在将其转换为可执行文件后会导致错误为“找不到适合 ods 的库”。
  • 剪裁为表现相同行为的最小示例。可能只需导入和打印软件包版本就足够了。然后在此处发布(在您的问题中,而不是在 cmets 中)。
  • 您是否尝试将pyexcelpyexcel_ods3 添加到hidden_imports

标签: python-3.x pyinstaller pyexcel


【解决方案1】:

您确定问题不在于使用 pyexcel 读取 .ods 文件吗?尝试使用 pyexcel_ods3 从 .ods 文件中获取数据:

sheet = pyexcel_ods3.read_data("sample.ods")

一旦您的脚本与 pyexcel_ods3 一起使用,请参阅 http://io.pyexcel.org/en/latest/pyinstaller.html 以添加隐藏导入。

我最近遇到了类似的问题,但后来我修复了我的代码并以这种方式获得了一个正常工作的 .exe。

【讨论】:

    【解决方案2】:

    您可能需要通过将pyexcel_ods3 库添加到hidden_imports 命令行参数来告诉PyInstaller 包含它。

    实现相同目标的另一种方法是在您应用的一个代码文件中显式导入pyexcel_ods3。这将导致 PyInstaller 将库识别为依赖项。

    【讨论】:

    猜你喜欢
    • 2020-03-15
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 2016-09-23
    • 2016-09-13
    • 2015-01-22
    • 2021-03-24
    相关资源
    最近更新 更多