【问题标题】:pyfmi ModuleNotFoundError when packaging using pyinstaller使用pyinstaller打包时出现pyfmi ModuleNotFoundError
【发布时间】:2020-08-02 22:42:14
【问题描述】:
我有一系列脚本,其中包括一些使用 pyfmi 模块的计算。当我在我的 python 环境(Spyder)中运行 main 函数时,我没有任何错误 - pyfmi 计算运行完美。但是,当我使用 pyInstaller 打包整个东西以制作可执行文件时,pyfmi 模块会导致问题。
我可以使用 exe 文件运行我的 GUI。但是,每当我单击调用 pyfmi 库的按钮时,我都会在控制台上收到一条错误消息,提示“没有名为 pyfmi.common.core 的模块”。我尝试了不同的导入选项,例如 import pyfmi、from pyfmi import *、from pyfmi import fmu_util 等,但并没有解决问题。
【问题讨论】:
标签:
python
pyinstaller
pyfmi
【解决方案1】:
尝试运行以下脚本以生成可执行文件:
import PyInstaller.__main__
PyInstaller.__main__.run(['YOUR_SCRIPT.py',
'--onefile',
'--hidden-import=pyfmi.common',
'--hidden-import=pyfmi.common.core',
'--hidden-import=pyfmi.fmi_util',
'--hidden-import=pyfmi.fmi_algorithm_drivers',
'--hidden-import=scipy._lib.messagestream',
'--hidden-import=assimulo.support',
'--hidden-import=assimulo.algebraic'
])
这在一个使用的文件中对我有用
from pyfmi import load_fmu
如果缺少更多模块,只需按照此处显示的方式添加它们即可。