我试图使用一百万个歌曲数据集,为此我必须安装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
返回:
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库,因为我做了很多失败的安装,也许我弄坏了一些东西,它只是因为它被加载到了计算机的临时内存中。
我试着安装Anaconda,我创建了一个新环境,并用Anaconda包管理器安装了packated,甚至认为我列出了所有packated,它返回:
# 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
我还是犯了同样的错误。我真的需要帮助,不知道还能尝试什么。谢谢。
对于cython用户:
This帖子很有帮助。文章解释说,有一些标志(--with fpectl)是在编译cpython期间设置的,或者没有。当使用没有该标志的cpython编译库时,它与设置了该标志的版本不兼容。这个效果只在使用cython时才会出现,因为numpy本身不使用这个扩展。
正如在那篇文章中进一步指出的,我的Ubuntu 16.04是用这个标志创建的,而Conda没有它。对我来说,具体是模块hmmlearn抛出未定义的符号错误。一定是这样,因为它是由Ubuntu提供的,并设置了标志,而不是由anaconda提供的。所以我卸载了hmmlearn并从sourcescode手动重新安装了它(不幸的是,Anaconda不提供hmmlearn)。-->;有效!
讽刺的是,最好的情况是,我重新启动了我的笔记本电脑,却什么也没做,而且它工作了。不明白为什么。
我也遇到了同样的问题,可能你安装了没有水蟒的numpy,所以有一个冲突,因为这个,哪个numpy可以使用:那个安装了pip或者conda的。当我移走非Python怪时,错误消失了。
相关问题 更多 >
编程相关推荐