编译python hmmlearn包的C代码时出错

我在安装hmmlearn软件包时遇到了一些麻烦(在虚拟环境中); 它似乎与底层的C代码有关。 使用pip安装包很好,但是当我尝试导入核心类时,我收到一个错误:

 In [1]: import hmmlearn In [2]: from hmmlearn import hmm --------------------------------------------------------------------------- ImportError Traceback (most recent call last)  in () ----> 1 from hmmlearn import hmm /export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/hmm.py in () 19 from sklearn.utils import check_random_state 20 ---> 21 from .base import _BaseHMM 22 from .utils import iter_from_X_lengths, normalize 23 /export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/base.py in () 11 from sklearn.utils.validation import check_is_fitted 12 ---> 13 from . import _hmmc 14 from .utils import normalize, log_normalize, iter_from_X_lengths 15 ImportError: /export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/_hmmc.so: undefined symbol: npy_expl 

我一直在阅读关于SO的其他问题似乎对此有所了解,但是一个解决方案 (使用Anaconda)将不起作用,因为hmmlearn不包括在内。 似乎答案与编译C代码有关,但我不确定如何去做。 任何帮助将非常感激!

我不久前遇到了同样的问题,并通过尝试一切可能来找到解决方案 。 无论出于何种原因,当某个包保存到缓存目录中时, pip跳过构建C扩展名。 如果强制pip忽略缓存,它总是从头开始构建包,所以解决方案是首先卸载包,然后运行pip install --no-cache-dir