【问题标题】:pyinstaller ModuleNotFoundError: No module named 'GUROBI_RUN'pyinstaller ModuleNotFoundError:没有名为“GUROBI_RUN”的模块
【发布时间】:2021-03-26 22:52:16
【问题描述】:

我在使用pyinstaller打包python文件后运行exe时遇到了这个问题。我的 python 文件是一个使用 pyomo 包的优化模型,它调用 gurobiipopt 求解器。 ipopt 求解器运行良好。 当我的 gurobi exe 程序运行时,它会打印出来

Traceback (most recent call last):
  File "<stdin>", line 4, in <module>
ModuleNotFoundError: No module named 'GUROBI_RUN'
ERROR: Solver (gurobi) returned non-zero return code (1)
ERROR: See the solver log above for diagnostic information.
Traceback (most recent call last):
  File "main.py", line 136, in <module>
  File "main.py", line 131, in main
...

GUROBI_RUN 是路径 'C:\Users\******\.conda\envs\gurobi_env\Lib\site-packages\pyomo\solvers\plugins\solvers' 中的 py 文件

我尝试了几种方法,包括:

  1. 将参数添加到规范文件中。
a = Analysis(['main.py'],
pathex=['C:\\Users\\*****\\.conda\\envs\\gurobi_env\\Lib\\site-packages', 
'C:\\gurobi900'],
...
  1. ma​​in.py中写python代码
from pyomo.solvers.plugins.solvers import GUROBI_RUN
  1. hiddenimports 添加到规范文件中
hiddenimports=['pyomo.solvers.plugins.solvers.GUROBI_RUN', 'pyomo.solvers', 'pyomo.common.plugins', ...],

我目前使用pyinstaller的方法是

  • 在终端运行pyinstaller main.py
  • 自动生成spec文件,然后修改spec文件,包括添加pathex、添加hiddenimports、添加datas
  • 在终端运行pyinstaller main.spec
  • 在终端运行main.exe

我的操作环境是 134 信息:PyInstaller:4.1 134 信息:Python:3.7.6(康达) 135 信息:平台:Windows-10-10.0.17763-SP0 150 信息:UPX 不可用。

【问题讨论】:

    标签: python pyinstaller pyomo gurobi


    【解决方案1】:

    我通过一种非常愚蠢和原始的方法解决了这个问题。由于我的包是一个文件夹而不是单个大的exe文件,所以我只是尝试将GUROBI_RUN.py文件放入与main.exe相同级别的文件夹中。它有效!我的 gurobi 程序现在可以在 exe 中正常运行了。

    【讨论】:

    • 我重新检查了我原来的方法1、2、3,例如添加pathx,将py文件放在main.py旁边后添加from *** import GUROBI_RUNimport GUROBI_RUN,并添加隐藏导入。一旦我将 GUROBI_RUN.py 放在打包文件夹中的 main.exe 旁边,所有这些都是不必要的。所有这些参数都可以删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多