0

我正在使用下面的代码将 .xls 文件转换为 .xlsx。当我正常运行或在调试模式下运行它时它工作正常,但如果我将其转换为可执行文件(.exe),则下面的代码不起作用。我猜 pyinstaller 没有 pyexcel 钩子来加载导入。有什么办法可以将此导入 pyexcel 添加到 pyinstaller 吗?

导入pyexcel

pyexcel.save_as(file_name=path_Xls, dest_file_name=path_Xls+'x') 我已经在我的系统上安装了 pyexcel-xls,仍然收到此错误

控制台错误

4

1 回答 1

0

简答

请将这些行附加到您的命令行:

--hidden-import pyexcel_xls --hidden-import pyexcel_xls.xls
--hidden-import pyexcel_xlsx --hidden-import pyexcel_xlsx.xlsx

另请注意,此解决方案仅适用于 pyexcel-io v0.3.x 和 pyexcel v0.4.x

长答案

pyexcel-io 插件是延迟加载的,也就是说在使用时会被导入。这就是为什么 pyinstaller 无法通过简单地读取源代码而不知道其运行时行为将隐藏的导入打包到可执行文件中的原因。

这是带有 pyinstaller 的 pyexcel-io v0.3.4 的文档

更多信息

有了最新的 pyexcel v0.5.0 和 pyexcel-io 0.4.0,恐怕还有更多的选项要附加,因为所有的内置插件也变得懒加载了。以下是相应的文档:pyinstaller on pyexcelpyexcel-io

于 2017-06-25T00:28:23.403 回答