Python Pocketsphinx导入值错误

Python Pocketsphinx导入值错误,python,osx-lion,cmusphinx,Python,Osx Lion,Cmusphinx,我最近在我的mac电脑上安装了pocketsphinx模块,运行的是Lion和Python 2.7.3(不是苹果内置的Python,而是酿造的)。我尝试运行以下代码: import pocketsphinx as p decoder = p.Decoder(jsgf='/path_to_jsgf_file/grammar.jsgf',samprate='8000') fh = open('myrecording.wav', 'rb') nsamp = decoder.decode_raw(fh)

我最近在我的mac电脑上安装了pocketsphinx模块,运行的是Lion和Python 2.7.3(不是苹果内置的Python,而是酿造的)。我尝试运行以下代码:

import pocketsphinx as p
decoder = p.Decoder(jsgf='/path_to_jsgf_file/grammar.jsgf',samprate='8000')
fh = open('myrecording.wav', 'rb')
nsamp = decoder.decode_raw(fh)
print 'You said,', hyp
print 'Your score was', score
但我在运行p:import-pocketsphinx时遇到了一个错误

Traceback (most recent call last):
File "speech_reco.py", line 4, in <module>
import pocketsphinx as p
File "sphinxbase.pxd", line 150, in init pocketsphinx (pocketsphinx.c:7935)
ValueError: PyCapsule_GetPointer called with invalid PyCapsule object
回溯(最近一次呼叫最后一次):
文件“speech_reco.py”,第4行,在
将pocketsphinx作为p导入
文件“sphinxbase.pxd”,第150行,在init pocketsphinx中(pocketsphinx.c:7935)
ValueError:使用无效的PyCapsule对象调用PyCapsule\u GetPointer
但是,当第二次运行导入命令时,它将正确运行。因此,目前,我正在那里运行一个try-catch并克服错误。但我不知道这是否仍然有效

正如在本链接中所讨论的,这个问题似乎以前就出现过:

有人解决了这个问题吗?如果不是,try-catch是避免这个错误的正确方法吗

有人解决了这个问题吗?如果不是,try-catch是避免这个错误的正确方法吗

这个Cython问题在稍后的Cython中得到修复

如果不是,try-catch是避免这个错误的正确方法吗

避免此错误的正确方法是使用Cython重新创建粘合代码。错误报告中的最后一条消息说:


你好,尼古拉,我一直在尝试采用这种方法,但我真的找不到上次评论中提到的.c文件。这是pocketsphinx和sphinxbase的所有文件所在的位置
/usr/local/cillar/
,但我找不到sphinxbase.c和pocketsphinx.c。如果我的问题太简单,我真的很抱歉,但我以前从未使用过这种技术。这些文件都在sphinxbase和pocketsphinx的python子文件夹中。我想我在安装python时可能做错了什么,因为我无法在python子文件夹中的任何位置找到这些文件。我可能找错了。我在
usr/local/ceral/
中的
python
文件夹的子文件夹中进行了搜索,但找不到这些文件。Cellar文件夹中前面提到的pocketsphinx目录中有
pocketsphinx.pc``和
pocketsphinx.h``文件。那么,通过自制软件安装会导致问题吗?因为,pocketsphinx和sphinxbase模块的所有组件看起来都不存在。然而,
import命令
似乎工作正常。因此,我尝试运行
python-v
,以查看发生了什么以及模块从何处导入。结果如下:
dlopen(“/usr/local/lib/python2.7/site-packages/pocketsphinx.so”,2);dlopen(“/usr/local/lib/python2.7/site packages/sphinxbase.so”,2);导入sphinxbase#从/usr/local/lib/python2.7/site-packages/sphinxbase.so动态加载
动态加载部分是什么意思?这是否意味着我的模块安装不正确?