使用 Pyinstaller 编译 Gekko
Compiling Gekko with Pyinstaller
不知道是不是possible,或者有没有人有过用pyinstaller把gekko优化包编译成exe的经验。作为测试用例,我使用的是来自 gekko 优化网站 (https://gekko.readthedocs.io/en/latest/examples.html) 的 HS 71 基准测试用例。我使用的是 64 位 windows 10 os。这个测试用例 运行 在我的 Spyder 环境中正确。当 remote=True 时,exe 也 运行s 正确。我已将代码打包到一个 exe 中,并在本地修改为 运行 (m = GEKKO(remote=False)),并且在尝试 运行 exe 时 运行 遇到错误。
使用命令成功创建应用程序:
pyinstaller GekkoTest.spec
我修改了 spec 文件以包含隐藏的导入 'gekko'
在 运行 生成可执行文件后,它失败并出现错误,提示未找到 results.json 文件。我已验证该文件(以及其他一些文件)在应用程序执行期间未在 tmp 目录中创建(我将在 spyder 中 运行ning 创建的文件与 运行 创建的文件进行了比较宁执行)。我认为 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 组
的 bwoodsend
实施此解决方案后,可执行文件现在可以运行了。谢谢大家的建议。
“您只需要告诉 PyInstaller 包含 Gekko 的数据文件。编辑您的规范,将 from PyInstaller.utils.hooks import collect_data_files 放在顶部,将 datas=[] 参数设置为“datas=collect_data_files('gekko') 然后用 pyinstaller GekkoTest.spec 重建。”- 来自 pyinstaller google 组
的 bwoodsend
不知道是不是possible,或者有没有人有过用pyinstaller把gekko优化包编译成exe的经验。作为测试用例,我使用的是来自 gekko 优化网站 (https://gekko.readthedocs.io/en/latest/examples.html) 的 HS 71 基准测试用例。我使用的是 64 位 windows 10 os。这个测试用例 运行 在我的 Spyder 环境中正确。当 remote=True 时,exe 也 运行s 正确。我已将代码打包到一个 exe 中,并在本地修改为 运行 (m = GEKKO(remote=False)),并且在尝试 运行 exe 时 运行 遇到错误。
使用命令成功创建应用程序: pyinstaller GekkoTest.spec
我修改了 spec 文件以包含隐藏的导入 'gekko'
在 运行 生成可执行文件后,它失败并出现错误,提示未找到 results.json 文件。我已验证该文件(以及其他一些文件)在应用程序执行期间未在 tmp 目录中创建(我将在 spyder 中 运行ning 创建的文件与 运行 创建的文件进行了比较宁执行)。我认为 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 组
实施此解决方案后,可执行文件现在可以运行了。谢谢大家的建议。
“您只需要告诉 PyInstaller 包含 Gekko 的数据文件。编辑您的规范,将 from PyInstaller.utils.hooks import collect_data_files 放在顶部,将 datas=[] 参数设置为“datas=collect_data_files('gekko') 然后用 pyinstaller GekkoTest.spec 重建。”- 来自 pyinstaller google 组
的 bwoodsend