如何解决使用 Pyinstaller 编译 Gekko
我想知道是否有可能,或者是否有人有任何经验,将带有 pyinstaller 的 gekko 优化包编译为 exe。作为测试用例,我使用了来自 gekko 优化网站 (https://gekko.readthedocs.io/en/latest/examples.html) 的 HS 71 Benchmark 用例。我使用的是 64 位 Windows 10 操作系统。这个测试用例在我的 Spyder 环境中正确运行。当 remote=True 时,exe 也能正确运行。我已将代码打包成 exe 并进行修改以在本地运行 (m = GEKKO(remote=False)),并且在尝试运行 exe 时遇到错误。
使用以下命令成功创建应用程序: pyinstaller GekkoTest.spec
我已修改规范文件以包含隐藏的导入“gekko”
运行生成的可执行文件时,它失败并显示未找到 results.json 文件的错误。我已经验证在应用程序执行期间没有在 tmp 目录中创建该文件(以及其他一些文件)(我将在 spyder 中运行时创建的文件与通过运行可执行文件创建的文件进行了比较)。我认为 Gekko 优化使用 C/fortran 代码来运行算法,因为它们不是 Python 原生的。找到优化问题的解决方案后,将其写入json文件并重新加载到python中。我的猜测是 pyinstaller 在创建其可执行文件时不包括一些必需的文件。
对此问题的任何建议将不胜感激。谢谢。
更新:
“您只需要告诉 PyInstaller 包含 Gekko 的数据文件。编辑您的规范,将 from PyInstaller.utils.hooks import collect_data_files
放在顶部,将 datas=[]
参数设置为“datas=collect_data_files('gekko')
,然后使用 pyinstaller GekkoTest.spec 重建。” - 来自 pyinstaller google group 的 bwoodsend
实施此解决方案后,可执行文件现在可以运行了。谢谢大家的建议。
解决方法
“你只需要告诉 PyInstaller 包含 Gekko 的数据文件。编辑你的规范,从 PyInstaller.utils.hooks import collect_data_files 在顶部,将 datas=[] 参数设置为“datas=collect_data_files('gekko') 然后使用 pyinstaller GekkoTest.spec 重建。” - 来自 pyinstaller google group 的 bwoodsend
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。