26

我在 python 3.3 上安装了 pandas,编码如下:

import csv
import pandas
from pandas import DataFrame

csvdata = pandas.read_csv('datafile.csv')
df = DataFrame(csvdata)

它带有以下错误消息:

cannot import name hashtable
Traceback (most recent call last):
  File "C:\Users\document\test4.py", line 5, in <module>
    import pandas
  File "C:\Python33\lib\site-packages\pandas\__init__.py", line 6, in <module>
    from . import hashtable, tslib, lib
ImportError: cannot import name hashtable

谁能帮我弄清楚如何解决这个错误?Python 和 pandas 安装成功。

4

5 回答 5

27

更新:我现在建议使用Anaconda安装科学的 Python 堆栈。

Pandas 捆绑在一起,可以使用 conda 轻松更新:

conda update pandas

它还与 cython、scipy(很难通过 pip 安装)、statsmodels 捆绑在一起,并为您管理这些包之间的依赖关系/关系。

值得强调的是,您不需要 admin/sudo 访问权限即可在机器上安装它来安装 Anaconda。


如果您不使用 Anaconda,推荐的安装 pandas的方法是通过 pip(在 Mac 和 Windows 上):

pip install pandas

在 Linux 上,您也可以python-pandas在任何存储库中安装,但请注意您可能正在安装旧版本的 pandas,理想情况下您应该使用最新的稳定版本。


看起来您已尝试从 source 安装,文档提到:

从 git 存储库安装需要最近安装 Cython,因为 cython 化的 C 源代码不再签入源代码控制。已发布的源代码分发版将包含已构建的 C 文件。我建议通过安装最新的 Cythoneasy_install -U Cython

请注意,如果您在源目录中打开解释器,您将无法导入 pandas ,除非您在适当的位置构建 C 扩展

python setup.py build_ext --inplace

如果不编译hashtables.pyx(以及其他一些 cython 文件),pandas 将无法导入它们。这些是 pandas 所必需的(这解释了您的错误消息)。

注意:对于 0.11.1 及更高版本,此错误消息更具描述性,它会说未构建 C 扩展。

于 2013-01-20T19:37:25.950 回答
3

这里的熊猫 Python 3.3 二进制文件http://www.lfd.uci.edu/~gohlke/pythonlibs/似乎没有编译成功。我没有时间配置我的构建机器来构建和测试 Python 3.3 二进制文件,但我知道在其他平台上的 Python 3.3 上也能正常工作。

于 2013-02-09T19:41:05.417 回答
3

当我尝试安装 pandas 0.13.1 时,我也遇到了同样的问题。它已安装但我无法导入它。

正如@danioyuan 建议的那样,我使用easy_install 安装了Cython,现在我可以导入熊猫了。

于 2014-04-09T14:18:00.087 回答
3

我已经尝试了上面所有的东西,对我没有用。

你可以改变你的pandas版本

pip install --user pandas==0.22

只有这对我有用:)

于 2020-03-03T20:32:25.660 回答
0

我遇到了同样的问题。我使用命令 pip install pandas 安装了熊猫。

默认情况下,我的 pip 在 python3.2 的 dist-packages 中安装了 pandas,我的默认 python 版本是 2.7。结果当我做python打开交互式shell并尝试做

 import pandas

 File "<stdin>", line 1, in <module>
 File "/usr/local/lib/python3.2/dist-packages/pandas/__init__.py", line 6, in <module>
 from . import hashtable, tslib, lib
 ImportError: cannot import name hashtable

解决我的问题是:

 python3.2
 import pandas

请检查您是否使用相同的 Python 版本,其 dist-packages 包含 pandas。

于 2014-05-24T06:41:25.387 回答