【发布时间】:2013-10-24 05:26:44
【问题描述】:
两个多星期前,我尝试使用numpy 来查找 2 × 2 矩阵的特征向量和特征值。它没有用,我收到了Illegal instruction (core dumped),消息。我在stackoverflow(here)上问了这个问题。
答案是语法正确,我需要尝试全新安装,它可能与“启用 SSE/SSE3 的二进制文件”有关(无论它是什么意思)。
在这些答案的指导下,我做了以下事情:
sudo apt-get install python-virtualenv
virtualenv ~/python2/
source ~/python2/bin/activate
pip install numpy
python tmp.py
在我的tmp.py 我有:
import numpy as np
from numpy import linalg as la
w, v = la.eig(np.array([[1, -1], [1, 1]]))
结果我得到了同样的错误信息:Illegal instruction (core dumped)。
有人知道必须如何安装 python 和 numpy 才能使其工作吗?
添加
以下顺序不能解决问题:
sudo pip install virtualenv
sudo pip install virtualenv --upgrade
virtualenv venv
~/venv/bin/activate
source ~/venv/bin/activate
pip install numpy
python tmp.py
【问题讨论】:
-
SSE/SSE3 是 CPU 指令集 en.wikipedia.org/wiki/SSE3。您的 pip install numpy 指令必须输出很多“gcc ...”日志行,您可以将其上传到某个地方吗?这绝对与 virtualenv 等无关。
-
+1 到 @alko 建议遵循 seberg 对原始线程的评论。某些版本的 Ubuntu 发布了损坏的 blas/lapack(我隐约记得 64 位 lucid 有问题)。至少,运行 numpy.test() 并查看 linalg 周围是否有故障。
标签: python numpy virtualenv coredump