【问题标题】:Error compiling C code for python hmmlearn package为 python hmmlearn 包编译 C 代码时出错
【发布时间】:2016-07-26 04:28:37
【问题描述】:

我在正确安装hmmlearn 包时遇到了一些问题(在虚拟环境中);它似乎与底层 C 代码有关。使用pip 可以正常安装包,但是当我尝试导入核心类时,出现错误:

In [1]: import hmmlearn

In [2]: from hmmlearn import hmm
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-8b8c029fb053> in <module>()
----> 1 from hmmlearn import hmm

/export/hdi3/home/krono/envs/sd/lib/python2.7/site-packages/hmmlearn/hmm.py in <module>()
     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 <module>()
     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 的其他问题,这些问题似乎可以解决这个问题,但 one solution(使用 Anaconda)将不起作用,因为不包括 hmmlearn。似乎答案与编译 C 代码有关,但我不确定如何去做。任何帮助将不胜感激!

【问题讨论】:

  • 您好像在使用虚拟环境?
  • 是的,将其添加到问题中。安装在虚拟环境中。
  • 尝试运行卸载包然后运行pip install --no-cache-dir hmmlearn
  • 哇!那行得通。你能解释一下为什么吗?

标签: python c compilation pip hmmlearn


【解决方案1】:

我不久前遇到了同样的问题,并通过尝试一切可能的方法找到了solution。无论出于何种原因,在某些情况下,pip 会在将包保存到缓存目录时跳过构建 C 扩展。如果你强制pip忽略缓存,它总是从头开始构建包,所以解决方法是首先卸载包然后运行pip install --no-cache-dir &lt;package&gt;

【讨论】:

    猜你喜欢
    • 2011-01-22
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2021-08-15
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多