在Mountain Lion上安装Scipy

3
我正在尝试在一个全新安装的Mountain Lion系统上,通过Xcode及其命令行工具安装Python及其科学库。我使用homebrew工具安装了一个全新的Python 2.7版本,因为我不想破坏Apple提供的那个版本。我还通过homebrew工具安装了gfortran编译器。然后,我从Numpy源代码安装Numpy,并使用gfortran参数来构建它。我这样做是因为如果我使用pip install安装numpy,那么scipy的安装将失败。安装完成后,我通过bumpy.test('full')进行了测试,测试结果显示一切正常。
接下来,我尝试使用pip或源代码安装scipy,但结果相同,即安装成功,但当我使用scipy.test()进行测试时,会出现大量失败和一个错误。您有任何解决方法吗?报告的错误信息如下:
ERROR: test_logm_consistency (test_matfuncs.TestExpM)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/scipy/linalg/tests/test_matfuncs.py", line 124, in test_logm_consistency
    assert_array_almost_equal(expm(logm(a)), a)
  File "/usr/local/lib/python2.7/site-packages/scipy/linalg/matfuncs.py", line 453, in logm
    errest = norm(expm(F)-A,1) / norm(A,1)
  File "/usr/local/lib/python2.7/site-packages/scipy/linalg/matfuncs.py", line 49, in expm
    A_L1 = norm(A,1)
  File "/usr/local/lib/python2.7/site-packages/scipy/linalg/misc.py", line 12, in norm
    a = np.asarray_chkfinite(a)
  File "/usr/local/lib/python2.7/site-packages/numpy/lib/function_base.py", line 590, in asarray_chkfinite
    "array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs

失败与boas、basic、dot、asum、nrm2和arpack有关。
你有任何修复的想法吗?

1
请参考:https://dev59.com/hmct5IYBdhLWcg3wcs-G#14315132。我建议使用Samueljohn的“taps”来安装scipy。 - Anton I. Sipos
1个回答

2
我的建议是,无论何时都应该在virtualenv中设置Python计算环境(特别是对于像scipy和numpy这样棘手的软件包)。virtualenv是一种工具,允许您设置和切换到隔离的Python环境,以便在一个环境中安装和更改内容不会影响其他环境。
编辑:使用virtualenv的另一个原因是,如果您把所有东西都搞糟了,您没有弄乱全局系统配置,您可以删除virtualenv并从头开始重新安装来解决问题。我还建议使用virtualenvwrapper,它基本上只是一些糖,使virtualenv更直观和更快速。
此外,针对您实际的问题:我认为您仍然需要使用scipy的开发分支才能在OSX 10.8上成功编译。我基本上按照这里的说明操作,一切正常。

嗨,詹姆斯,感谢你的回答。我也尝试在隔离的虚拟环境中设置所有内容,但最终nose报告了更多的错误。如果您使用virtualenv和scipy的开发版本,则可以通过pip安装numpy和scipy。在virtualenv之外,您必须编译前者,否则scipy的安装将失败。 - purpleshift

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接