导入错误:HDFStore需要PyTables模块,但没有找到tables模块。

53
import pandas as pd
dfs = pd.HDFStore('xxxxx.h5')

抛出此错误:

"ImportError: HDFStore需要PyTables,"未找到名为tables的模块"的问题"

我尝试安装PyTables,它需要Cython。 我已经安装了Cython 0.21,但是它报错说Cython应该大于0.13。

这里是我得到的日志:

".. ERROR:: You need Cython 0.13 or greater to compile PyTables!

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /private/tmp/pip_build_root/tables
Storing debug log for failure in /Users/nikhilsahai/Library/Logs/pip.log
Nikhils-MacBook-Pro:~ nikhilsahai$ sudo pip install cython
Requirement already satisfied (use --upgrade to upgrade): cython in /Library/Python/2.7/site-packages/Cython-0.21-py2.7-macosx-10.9-intel.egg
Cleaning up..."
请指导我如何解决这个问题。

我认为您的路径有所交叉,setup.py 找到了一个版本的 cython,而 pip 找到了另一个版本。 - tacaswell
是的,你需要一个更高版本的Cython,0.21是当前版本。 - Jeff
这是在发布版本的pytables中的一个bug:https://github.com/PyTables/PyTables/issues/388。在开发版本中已经修复了。你可以使用`pip install git+https://github.com/PyTables/PyTables`安装开发版本。 - TomAugspurger
7个回答

52

只需要简单地使用以下代码更新pytables:

pip install --upgrade tables

对我有用。


26

在使用 HDFStore 时,我也遇到了同样的错误。我尝试了上述所有步骤,并花费了许多时间来寻找解决方案,但都没有成功。

然后我下载并安装了MiniConda。然后我使用以下命令安装了pytables。

conda install -c conda-forge pytables

请参考下面的屏幕截图。 enter image description here

18

在Ubuntu上,我使用以下命令解决了这个问题:

sudo apt-get install python3-tables

请注意,我正在使用Python 3


10
对于Python 3,请只需运行pip install tables命令即可安装。 - Shadi
1
你有点不必要地限制了自己的选择。使用pip,你可以选择不同的版本。顺便说一下,pip也是一个软件包管理器。 - Shadi
2
@shadi 请阅读这篇文章:http://matthew-brett.github.io/pydagogue/installing_on_debian.html。它提供了一个平衡的观点,解释了apt-get和pip之间的优缺点。出于稳定性原因,我更喜欢使用apt-get,而其他人则更喜欢使用pip以获得其他好处,例如更好地控制他们想要的软件包。同时,结合pip使用virtualenv似乎更可取。 - Tarik
有效的观点。我使用pew作为virtualenv的包装器。 - Shadi
使用Dockerfile(基于python3-slim的基础镜像),添加ENV HDF5_DIR=/usr/lib/x86_64-linux-gnu/hdf5/serial,并安装apt-get install libhdf5-serial-devpip install tables似乎可行。其他解决方案对我不起作用。 - morganics
显示剩余2条评论

6

我可以确认:这解决了在MacOS上使用python2和python3的问题(python2 -m pip install tablespython3 -m pip install tables)。 - normanius

2

正如TomAugspurger所提到的那样... 最新版本的pytables似乎存在一个bug。您可以通过执行以下命令安装当前的开发版本:

sudo pip install git+https://github.com/PyTables/PyTables

如果问题已经得到解决,应该关闭这个问题 :)

2
您需要安装pytables: conda install pytables

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接