【发布时间】:2012-12-30 06:10:01
【问题描述】:
尽管我听说过很多关于人们在 Mac OS X Lion 上安装 numpy、scipy 和 matplotlib 时遇到问题的故事,但直到今天我才遇到任何问题。我最近更新了我的系统并尝试安装最新版本的 NumPy 和 SciPy。 NumPy 安装顺利,测试按预期运行,但是 scipy 安装似乎不完整。每次我尝试导入 scipy.stats 时都会出现以下错误:
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
我正在使用 github 上最新版本的 numpy 和 scipy。出于某种原因,_ufuncs.so 的 x86_64 版本似乎没有被构建。我已经尝试了所有我能想到的编译器标志 ARCHFLAGS="-arch i386 -arch x86_64" LDFLAGS="-arch i386 -arch x86_64" FFLAGS="-m64 -ff2c"
无论我做什么,我都会得到同样的错误。有什么建议吗?
更新 所以我认为我已经找到了问题所在,我会在 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 页面上指定的那样。我只导出: 抄送=gcc-4.2 CXX=g++-4.2 FFLAGS=-ff2c
我刚刚在另一个系统上安装,一切正常。
【问题讨论】:
-
我注意到了stackoverflow.com/questions/10046043/… 的响应,但设置 ARCHFLGS 对我不起作用。
标签: scipy