从 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 运行时目录。
我正在尝试从 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 运行时目录。