簡體   English   中英

pyinstaller ModuleNotFoundError:沒有名為“GUROBI_RUN”的模塊

[英]pyinstaller ModuleNotFoundError: No module named 'GUROBI_RUN'

我在使用 pyinstaller 打包 python 文件后運行 exe 時遇到了這個問題。 我的 python 文件是使用pyomo package 的優化 model,它調用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. main.py中編寫 python 代碼,例如
from pyomo.solvers.plugins.solvers import GUROBI_RUN
  1. 隱藏導入添加到規范文件中
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 INFO: PyInstaller: 4.1 134 INFO: Python: 3.7.6 (conda) 135 INFO: Platform: Windows-10-10.0.17763-SP0 150 INFO: UPX 不可用。

我用一種非常愚蠢和原始的方法解決了這個問題。 由於我的package是一個文件夾而不是一個大的exe文件,所以我只是嘗試將GUROBI_RUN.py文件放入文件夾,與main.exe同級。 它的工作原理。! 我的 gurobi 程序現在可以在 exe 中正常運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM