儘管我聽說過很多人在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不適合我。 –