Python pyinstaller与matlab:ImportError没有名为';mlarray';

Python pyinstaller与matlab:ImportError没有名为';mlarray';,python,matlab,Python,Matlab,我正在尝试用pyinstaller打包我的脚本。我的脚本与matlab交互,因此导入了MatlabPython API。我在运行可执行文件时遇到以下错误 ImportError没有名为“mlarray”的模块 问题在于导入mlarray模块,所以我在一个最简单的脚本上做了一个实验,如下所示 from matlab import mlarray 然后,我用pyinstaller将其打包。我得到了与预期相同的错误。 有人和我遇到过同样的问题吗?我通过改变来解决它 从 到 在 \Python36

我正在尝试用pyinstaller打包我的脚本。我的脚本与matlab交互,因此导入了MatlabPython API。我在运行可执行文件时遇到以下错误


ImportError没有名为“mlarray”的模块 问题在于导入mlarray模块,所以我在一个最简单的脚本上做了一个实验,如下所示

from matlab import mlarray
然后,我用pyinstaller将其打包。我得到了与预期相同的错误。


有人和我遇到过同样的问题吗?

我通过改变来解决它

在 \Python36\Lib\site packages\matlab\mlarray.py

在 \Python36\Lib\site packages\matlab\u internal\mlarray\u sequence.py


将hiddenimports=['scipy._lib.messagestream']添加到spec文件中,首先删除对matlab的更改

然后创建一个目录结构和hook-matlab.py文件,如以下树所示:

  • script_to_compile.py#这是运行pyinstaller的python文件
  • hooks#DIR
    • hook-matlab.py 以及hook-matlab.py的内部:
从PyInstaller.utils.hooks导入collect\u all

数据、二进制文件、hiddenimports=collect_all('matlab'))
然后使用额外选项--additional hooks dir=hooks进行构建。

我可以确认这是可行的,您必须读取打印到MatLab控制台的错误,并在MatLab python模块中修复这些错误,才能编译代码。我还有一个问题,我需要为文本文件指定一个路径,以及这个答案中的路径
from _internal.mlarray_sequence import _MLArrayMetaClass
from matlab._internal.mlarray_sequence import _MLArrayMetaClass
from _internal.mlarray_utils import _get_strides, _get_size, \
    _normalize_size, _get_mlsize, _reshape
from matlab._internal.mlarray_utils import _get_strides, _get_size, \
    _normalize_size, _get_mlsize, _reshape