首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ubuntu上导入python中的sidekit时出错

在ubuntu上导入python中的sidekit时出错
EN

Stack Overflow用户
提问于 2017-02-05 09:16:55
回答 2查看 1.2K关注 0票数 1

我键入使用了用于说话人识别的侧翼工具包,我已经为Ubuntu安装了libsvm,我使用的是anaconda3.5。当我试图导入时,我会得到以下导入错误

代码语言:javascript
复制
>>> import sidekit
>>> import theano
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/shivam/anaconda3/lib/python3.5/site-packages/sidekit/__init__.py", 
line 141, in <module>
from sidekit.libsvm import *
File "/home/shivam/anaconda3/lib/python3.5/site-packages/sidekit/libsvm/__init__.py", 
line 37, in <module>
from sidekit.libsvm.svm import *
File "/home/shivam/anaconda3/lib/python3.5/site-packages/sidekit/libsvm/svm.py", 
line 324, in <module>
fillprototype(libsvm.svm_get_sv_indices, None, [POINTER(svm_model), POINTER(c_int)])
File "/home/shivam/anaconda3/lib/python3.5/ctypes/__init__.py", line 360, in __getattr__
func = self.__getitem__(name)
File "/home/shivam/anaconda3/lib/python3.5/ctypes/__init__.py", line 365, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/lib/libsvm.so.3: undefined symbol: svm_get_sv_indices
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-15 16:28:16

几个月前我安装Sidekit时也遇到了同样的问题。

1:如果您想要将Sidekit用于不涉及SVM的系统(gmm-ubm、I-向量等),那么可以通过编辑__init__.py以避免导入libsvm来避免这个问题。在您的例子中,它位于这里:/home/shivam/anaconda3/lib/python3.5/site-packages/sidekit/__init__.py。将libsvm_loaded = False添加到第140行(if libsvm_loaded:上方),就不会导入libsvm。

2:如果您希望能够使基于支持向量机的系统(例如在示例脚本rsr2015_svm_gmm.py中),Sidekit 文档告诉您(在libsvm安装之后)将libsvm.so.2复制到.../python3.5/site-packages/sidekit/libsvm/中。

如果import sidekit仍然给出相同的错误,请检查.../python3.5/site-packages/sidekit/__init__.py的第125行,并确保它显示为libsvm = CDLL(os.path.join(dirname, 'libsvm.so.2'))

注意,如果要更新Sidekit,__init__.py将被替换。

票数 1
EN

Stack Overflow用户

发布于 2017-04-21 14:09:10

我还得到了这个完全相同的错误,当我试图导入的时候。我试着安装我能找到的每一个libsvm包(包括Python和apt-get),但是修复这个错误的唯一方法是从源代码下载并编译libsvm。它并没有听起来那么糟糕--它似乎是一个很小的库--只花了5秒就编译了。

假设您安装了git (apt-get install git-core),我使用的命令集合如下:

代码语言:javascript
复制
cd ~/ && \
git clone https://github.com/cjlin1/libsvm.git && \
cd libsvm && \
make && \
cd python && \
make && \
cp ~/libsvm/libsvm.so.2 /usr/local/lib/python3.5/dist-packages/sidekit/libsvm/ && \
rm -rf ~/libsvm

注意:我意识到您的错误提到了libsvm.so。3-3

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42050356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档