为了处理音频文件,安装了Yaafe库(Ubuntu下Yaafe安装及配置), 按照这篇文章,一路顺利安装,当最后运行测试代码:
from yaafelib import *
的时候报错,提示
无法加载libyaafe-python.so
OSError:cannot open shared object file
这就奇怪了,重新检查了目录,所有文件都正常(so文件默认都安装在/usr/local/lib/),之后尝试了各种解决方法,包括更换文件目录,添加环境变量等结果还是报错. 最后尝试了一下删除/usr/local/lib/ 下的libyaafe相关so:
sudo rm /usr/local/lib libyaafe-*
一下六个文件将被删除:
/usr/local/lib/libyaafe-python.so
/usr/local/lib/libyaafe-io.so
/usr/local/lib/libyaafe-components.so
/usr/local/lib/libyaafe-core.so.0.70.0
/usr/local/lib/libyaafe-core.so.0
/usr/local/lib/libyaafe-core.so
然后回到Yaafe工程目录,并进入Yaafe/build/src_cpp/ (如果找不到这个目录请参看本文开头的链接,看是否按操作安装),将上边的6个so文件从其下的各个子目录中拷贝出来, 然后使用ln命令建立link文件:
sudo ln -s /home/yourdir/Yaafe/build/src_cpp/libyaafe-XXX.so /usr/local/lib/
例如:
sudo ln -s /home/yourdir/Yaafe/build/src_cpp/libyaafe-python.so /usr/local/lib/
注意,前边的路径一定要使用绝对路径,否则会出现broken link文件的问题, 对所有6个so文件依次执行完该命令后,重新执行import,发现正常运行了