从 MATLAB Compiler 应用程序调用 python 时无法调用 python 库

Can't call python library when calling python from MATLAB Compiler application

我正在尝试从 MATLAB 编译的应用程序(使用 MATLAB 编译器)中 运行 python 脚本,但由于某些奇怪的原因,它无法从 scipy 中找到任何导入。当我尝试调用任何 scipy 方法时,它给我这个错误

Python Error: ImportError: cannot import name sigtools

如果我直接从 Python 或 MATLAB 调用相同的代码,它就可以工作。但不是来自 MATLAB 编译器。

另一个奇怪的事情是,来自 MATLAB 的 python 调用看到的 python 路径是正确的,那么这可能是什么原因造成的?

编辑 我的python路径

/usr/lib/python2.7
/usr/lib/python2.7/plat-x86_64-linux-gnu
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages/PILcompat
/usr/lib/python2.7/dist-packages/gtk-2.0

我在

中有文件 sigtools.x86_64-linux-gnu.so
/usr/lib/python2.7/dist-packages/scipy/signal/

回答你的问题。

直接到你机器上sigtools.so lib所在的位置执行python -c "import sigtools"然后在你的文件中,你可以导入它。

我找到了问题的解决方案。 MATLAB 运行时环境提供的 libstdc++ 版本太旧,无法导入某些 python 库。它应该 libstdc++.so.6 version 3.4.21。我已将文件 libstdc++.so.6 替换为 v901/sys/os/glnxa64/ 中的更新版本 (3.4.21),这是 MATLAB 运行时目录。