我正在尝试从MATLAB编译的应用程序(使用MATLAB编译器)运行python脚本,但由于一些奇怪的原因,它无法从scipy中找到任何导入。当我尝试调用任何scipy方法时,它会给我这个错误
Python Error: ImportError: cannot import name sigtools
如果我直接从Python或MATLAB调用相同的代码,它就可以工作。但不是来自MATLAB Compiler。
另一个奇怪的事情是来自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/
答案 0 :(得分:1)
我找到了问题的解决方案。
MATLAB运行时环境提供的libstdc++
版本太旧,无法导入某些python库。它应libstdc++.so.6 version 3.4.21
。我已将文件libstdc ++。so.6替换为v901/sys/os/glnxa64/
中的更新版本(3.4.21),这是MATLAB运行时目录。
答案 1 :(得分:0)
回答你的问题。
直接转到计算机中sigtools.so
lib所在的位置并执行python -c "import sigtools"
,然后在您的文件中导入它。