numpy 未定义符号:PyFPE_jbuf

numpy undefined symbol: PyFPE_jbuf

我正在尝试使用一百万首歌曲数据集,为此我必须安装 python 表、numpy、cython、hdf5、numexpr 等。

昨天我设法安装了我需要的所有东西,在遇到 hdf5 的一些问题之后,我下载了预编译的二进制包并将它们保存在我的 /bin 文件夹中,以及 /lib 中的相应库,之后我测试了这个python 脚本:http://labrosa.ee.columbia.edu/millionsong/sites/default/files/tutorial1.py.txt

它工作正常,要清楚我让它工作的方式是首先 运行 脚本并开始安装所需的依赖项,但今天我重新启动了我的笔记本电脑但它没有工作,现在它在控制台上抛出这个错误:

python2.7 script.py 

returns :

import numpy as np # get it at: http://numpy.scipy.org/
from . import random
from .mtrand import *
ImportError: /home/francisco/.local/lib/python2.7/site-packages/numpy/random/mtrand.so: undefined symbol: PyFPE_jbuf

在我看来,这样的文件中缺少一个变量,我的猜测是脚本在错误的地方寻找 numpy 库,因为我安装了太多失败的东西,也许我弄坏了一些东西,但它只能工作out 因为它被加载到计算机的临时内存中。

我尝试安装 Anaconda,我创建了一个新环境并使用 anaconda 包管理器安装了包,甚至认为我列出了所有包并且它 returns :

# packages in environment at /home/francisco/anaconda2/envs/Music:
#
biopython                 1.66                np110py27_0  
cython                    0.23.4                    <pip>
hdf5                      1.8.15.1                      2  
mkl                       11.3.1                        0  
numexpr                   2.5                 np110py27_0  
numpy                     1.10.4                   py27_1  
openssl                   1.0.2g                        0  
pillow                    3.1.1                     <pip>
pip                       8.1.1                    py27_0  
pytables                  3.2.2               np110py27_1  
python                    2.7.11                        0  
python-ldap               2.4.25                    <pip>
readline                  6.2                           2  
reportlab                 3.3.0                     <pip>
requirements              0.1                       <pip>
setuptools                20.3                     py27_0  
sqlite                    3.9.2                         0  
tables                    3.2.2                     <pip>
tk                        8.5.18                        0  
wheel                     0.29.0                   py27_0  
zlib                      1.2.8                         0  

我仍然遇到同样的错误。我真的需要帮助,不知道还能尝试什么。谢谢。

最讽刺的是,我什么都没做就重新启动了我的笔记本电脑,它起作用了。不明白为什么。

我遇到了同样的问题,可能是你安装了没有Anaconda的numpy,所以有冲突,因此使用哪个numpy:那个用pip安装的还是用conda安装的。当我删除非 Anaconda numpy 时,错误消失了。

pip uninstall numpy

最初,我使用系统 /usr/bin/pip 和 anconda pip 安装了 cython。我使用系统 pip 卸载了系统 cython 并使用重新安装 conda install cython。现在可以使用了。

我同意之前的帖子,这似乎是安装了多个版本的 numpy 造成的。对我来说,仅仅使用 pip 是不够的,因为我还安装了多个版本的 pip。

指定具体的 pip 解决了问题:

/usr/bin/pip3 uninstall numpy

对于 cython 用户:

This post 很有帮助。 post 解释说,有一些标志 (--with-fpectl),它要么在 cpython 编译期间设置,要么不设置。当使用没有该标志的 cpython 编译库时,它与设置了该标志的版本不兼容。这种效果只会在您使用 cython 时出现,因为 numpy 本身不使用此扩展。

正如 post 中进一步说明的那样,我的 Ubuntu 16.04 是用这个标志创建的,而 Conda 没有它。对我来说,具体是 hmmlearn 模块抛出了未定义的符号错误。一定是这种情况,因为它是由 Ubuntu 提供的,并且设置了标志,而不是 anaconda。所以我卸载了 hmmlearn 并从 sourcescode 手动重新安装它(不幸的是,Anaconda 不提供 hmmlearn)。 --> 有效!

首先从 /usr/local/lib/python2.7/dist-packages/numpy-1.11.0-py2.7-linux-x86_64.egg 中删除 numpy 然后使用以下命令

sudo pip install numpy scipy

我已经解决了这个错误。

我运行在特定情况下遇到这个问题。使用 Anaconda(我认为是 3)我正在创建一个新环境。以前我用 numpy 创建了一个 py3 env,不确定是否相关。但是在创建我的新 py2.7 环境时,我通过 pip 安装了一个特定的包 Ta-lib,但是对于特定的 Ta-lib 情况,出现了与 numpy 相关的相同问题的导入错误。

From this post Gaurav suggested 使用 pip 标志 --no-cache-dir 以确保在安装 numpy 期间重建。我卸载了我的 Ta-lib 和 numpy,然后通过 pip 使用这个标志重新安装它们,一切都很好。