0

我一直在努力让pytables和底层HDF5 库在 OS X 中的 python 上运行,所以我想我会尝试一下 Enthought 发行版(这也将大大简化以后跨平台的部署)。

我为 64 位 OS X安装了EPD 7.3 (我正在运行 10.8.2),但不幸的是没有成功,我在尝试加载 pytables 时得到以下信息...

In [4]: import tables
--------------------------------------------------------------------------- ImportError                               Traceback (most recent call last) /<ipython-input-4-389ecae14f10> in <module>()
----> 1 import tables

/Users/davidperry/Library/Python/2.7/lib/python/site-packages/tables/__init__.py in <module>()
     57 
     58 # Necessary imports to get versions stored on the Pyrex extension

---> 59 from tables.utilsExtension import getPyTablesVersion, getHDF5Version
     60 
     61 __version__ = getPyTablesVersion()

ImportError: dlopen(/Users/davidperry/Library/Python/2.7/lib/python/site-packages/tables/utilsExtension.so, 2): Symbol not found: _SZ_BufftoBuffCompress   Referenced from: /Users/davidperry/Library/Python/2.7/lib/python/site-packages/tables/utilsExtension.so Expected in: flat namespace  in /Users/davidperry/Library/Python/2.7/lib/python/site-packages/tables/utilsExtension.so

我想这意味着找不到 HDF5 所需的库 szip?如果 EPD 确实缺少它(看起来很奇怪......),我可以自己安装它而不从源代码构建 HDF5 吗?还是只是在一个陌生的地方

4

1 回答 1

1

首先,对于您遇到的问题,我深表歉意。

看起来好像您不是从 EPD 加载 pytables,而是从以前的安装加载。PYTHONPATH 在您的环境中看起来如何?

通常,EPD 安装在 /Library/Frameworks/Python.framework/Versions/7.3 中的某个位置。以下是做什么的?

PYTHONPATH= /Library/Frameworks/Python.framework/Versions/7.3/bin/python -c "import tables; print tables.__version__"

或(64 位版本):

PYTHONPATH= /Library/Frameworks/EPD64.framework/Versions/7.3/bin/python -c "import tables; print tables.__version__"

它应该返回类似“2.3.1”(EPD 中可用的实际表格版本)之类的内容。如果这确实有效,那么请让 EPD 成为您环境中的默认 python,您将需要调整 PATH/PYTHONPATH 变量以使其可用。

如果还是不行,可以试试下面的方法(适配 32 位):

 PYTHONPATH= /Library/Frameworks/EPD64.framework/Versions/7.3/bin/python -c "import sys; print sys.path"

并粘贴输出?

于 2013-03-25T12:32:45.377 回答