可能重复:
Installing h5py on OS X
我想让h5py在我的OS X Lion 10.7.3 Macbook Pro上运行。它以前工作过但不知怎的它已经卸载了,我无法再次安装它。它似乎与安装XCode 4.3有关,但我不确定。
导入h5py时,出现以下错误:
>>> import h5py
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/h5py/__init__.py", line 1, in <module>
from h5py import _errors
ImportError: dlopen(/Library/Python/2.7/site-packages/h5py/_errors.so, 2): Symbol not found: _H5E_ALREADYEXISTS_g
Referenced from: /Library/Python/2.7/site-packages/h5py/_errors.so
Expected in: flat namespace
in /Library/Python/2.7/site-packages/h5py/_errors.so
我想这与HDF5库有关。它尚未安装,所以我先使用
安装它brew install hdf5
这没有错误。但最后的警告如下。我认为这很重要:
ld: warning: ignoring file ../hdf5-1.8.8/hdf5/lib/libhdf5.a,
file was built for archive which is not the architecture being linked (i386)
我不是百分之百确定这意味着什么,但我想这个库是针对i386架构编译的,但是这个目录中有更多文件没有抱怨:
libhdf5.la
libhdf5.dylib -> libhdf5.7.dylib
libhdf5.7.dylib
libhdf5.settings
libhdf5.a
libhdf5_hl.la
libhdf5_hl.dylib -> libhdf5_hl.7.dylib
libhdf5_hl.a
libhdf5_hl.7.dylib
后来我也自己编译了源代码,从HDF5组网站(http://www.hdfgroup.org/HDF5/)下载。使用以下配置行,以确保它创建共享库我添加了--enable-shared和disabled fortran:
./configure --with-zlib=/usr/local --disable-fortran
--prefix=/usr/local/ --target=x86_64-apple-darwin
-build=x86_64-apple-darwin --host=x86_64-apple-darwin
--enable-shared --disable-production
我已经删除了h5py和hdf5库并重新安装了几次(我自己编译h5py,如使用pip和easy_install),但这似乎没有帮助。
我还使用我刚刚使用此命令创建的构建来安装h5py:
python setup.py build --hdf5=../hdf5-1.8.8/hdf5
我还将我的numpy和scipy安装更新到最新版本。
答案 0 :(得分:6)
从干净安装的Mac OS X Lion,我必须做的是:
xcode-select ...
)然后我可以:
$ brew install hdf5
它没有正确链接,因为我的/usr/local/lib
不可写。检查brew doctor
以查看是否有任何未关联的软件包:
$ brew doctor
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built.
hdf5
szip
所以我让dir可写并使用了
$ brew link hdf5
$ brew link szip
然后我可以做
$ sudo pip install h5py
并且presto。
>>> import h5py
>>>