我已按以下方式安装并调用numpy
库。但为什么它会给段错误?
如何克服这个问题?
[pdubois@mymachine Tools]$ pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /misc/u21/pdubois/.python2.7.6/lib/python2.7/site-packages/numpy-1.9.0.dev_688b243-py2.7-linux-x86_64.egg
Cleaning up..
还有easy_install
[pdubois@mymachine ~]$ easy_install-2.7.6 numpy
Searching for numpy
Best match: numpy 1.9.0.dev-688b243
Processing numpy-1.9.0.dev_688b243-py2.7-linux-x86_64.egg
numpy 1.9.0.dev-688b243 is already the active version in easy-install.pth
Installing f2py script to /u21/pdubois/.python2.7.6/bin
Using /misc/u21/pdubois/.python2.7.6/lib/python2.7/site-packages/numpy-1.9.0.dev_688b243-py2.7-linux-x86_64.egg
Processing dependencies for numpy
Finished processing dependencies for numpy
它给了我这个错误:
[pdubois@mymachine Tools]$ python
Python 2.7.6 (default, Feb 4 2014, 10:19:53)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Segmentation fault
同样当我使用pydoc调用它时:
[pdubois@mymachine Tools]$ pydoc numpy
Segmentation fault
答案 0 :(得分:3)
我建议您尝试使用virtualenv和环境中的安装numpy设置python虚拟环境,并查看问题是否已复制。
在针对系统的默认python安装安装时出现了numpy破坏的问题。 有关此here的讨论。您可以参考它来进一步了解问题。
numpy依赖库也会导致问题。 讨论中的某些人指出ATLAS库可能存在问题,并且在没有ATLAS的情况下安装numpy会解决它。
答案 1 :(得分:1)
在文件pydoc.py中,您必须更改默认功能:
def pipepager(text, cmd):
"""Page through text by feeding it to another program."""
pipe = os.popen(cmd, 'w')
try:
pipe.write(text)
pipe.close()
except IOError:
pass # Ignore broken pipes caused by quitting the pager program.
要:
def pipepager(text, cmd):
"""Page through text by feeding it to another program."""
import subprocess
pipe = subprocess.Popen(cmd, stdin=subprocess.PIPE, shell=True).stdin
try:
pipe.write(text)
pipe.close()
except IOError:
pass # Ignore broken pipes caused by quitting the pager program.
当您更改os.popen()
查看here了解更多信息。
答案 2 :(得分:1)
您是否尝试安装1.8而不是1.9? 1.9仍然是测试版。通常使用numpy 1.8它应该可以工作
答案 3 :(得分:0)
当我导入由GCC 4.1.2编译的numpy 1.9.0时,我遇到了同样的问题。它通过使用GCC 4.4.7解决。