尽管我听说过很多人在Mac OS X Lion上安装numpy,scipy和matplotlib时遇到问题,但直到今天我从未遇到任何问题。我最近更新了我的系统,并试图安装NumPy和SciPy的最新版本。 NumPy安装进行得很顺利,测试按预期运行,但scipy安装似乎不完整。每次我尝试导入scipy.stats我得到以下错误:在Mac OS X Lion上安装Scipy 10.7.5
In [1]: import scipy.stats
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-b66176eb2d0a> in <module>()
----> 1 import scipy.stats
/Library/Python/2.7/site-packages/scipy/stats/__init__.py in <module>()
326 """
327
--> 328 from stats import *
329 from distributions import *
330 from rv import *
/Library/Python/2.7/site-packages/scipy/stats/stats.py in <module>()
191 # Scipy imports.
192 from numpy import array, asarray, dot, ma, zeros, sum
--> 193 import scipy.special as special
194 import scipy.linalg as linalg
195 import numpy as np
/Library/Python/2.7/site-packages/scipy/special/__init__.py in <module>()
525 """
526
--> 527 from _ufuncs import *
528 from _ufuncs_cxx import *
529
ImportError: dlopen(/Library/Python/2.7/site-packages/scipy/special/_ufuncs.so, 2): no suitable image found. Did find:
/Library/Python/2.7/site-packages/scipy/special/_ufuncs.so: mach-o, but wrong architecture
我使用的是最新版本的numpy的和SciPy的关github上的。出于某种原因,它看起来像_ufuncs.so的x86_64版本没有被构建。我已经想尽编译器标志我能想到的 ARCHFLAGS = “ - 拱i386的-arch x86_64的” LDFLAGS = “ - 拱i386的-arch x86_64的” FFLAGS = “ - M64 -ff2c”
,并没有什么母校我得到同样的错误。有什么建议?
UPDATE 所以我认为,我已经找到了问题,我将在后续的SciPy的分发列表:
大多数SciPy的构建时创建的库是通用的文件,这意味着它们同时支持i386和x86_64。问题在于用gfortran编译的文件只能编译为i386。
> find . -name *.so | xargs -I {} lipo -info {}
Architectures in the fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/cluster/_hierarchy_wrap.so are: i386 x86_64
Architectures in the fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/cluster/_vq.so are: i386 x86_64
Non-fat file: ./build/lib.macosx-10.7-intel-2.7/scipy/fftpack/_fftpack.so is architecture: i386
我检查了我的环境,但没有看到任何可疑的东西。如SciPy Mac OS X页面所述。我唯一的出口: CC = GCC-4.2 CXX = G ++ - 4.2 FFLAGS = -ff2c
我只是没有安装其他系统上,一切工作就好了。
我注意到了响应http://stackoverflow.com/questions/10046043/pip-easy-install-ignoring-archflags-in-scipy-installation但设置ARCHFLGS不适合我。 –