我使用下面的代码将.xls文件转换为.xlsx。当我正常运行或在调试模式下运行它时,它工作得很好,但是如果我将它转换为可执行文件(.exe),下面的代码就不能工作。我猜pyinstaller没有pyexcel钩子来加载导入。有没有办法将这个导入的pyexcel添加到pyinstaller中??
导入pyexcel
pyexcel.save_as(file_name=path_Xls,dest_file_name=path_Xls+'x')我已经在系统上安装了pyexcel-xls,但仍然收到此错误
发布于 2017-06-25 08:28:23
简短的回答
请将以下行附加到您的命令行:
--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上的the documentation
更多信息
随着最新的pyexcel v0.5.0和pyexcel-io 0.4.0的发布,恐怕还有更多的选项需要添加,因为all built-in plugins become lazy-loaded也是如此。下面是相应的文档:pyexcel和pyexcel-io上的pyinstaller
https://stackoverflow.com/questions/44256869
复制相似问题