【问题标题】:Importing pandas shows ImportError: cannot import name hashtable导入 pandas 显示 ImportError: cannot import name hashtable
【发布时间】:2013-01-03 13:59:45
【问题描述】:

我在 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 安装成功。

【问题讨论】:

  • Pandas 似乎没有正确安装
  • 我在 WinPython (py3.4) 中遇到同样的错误有时

标签: python-3.x pandas


【解决方案1】:

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

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

conda update pandas

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

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


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

pip install pandas

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


您似乎尝试过install from source,文档中提到了这一点:

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

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

python setup.py build_ext --inplace

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

注意:这个error message has been made more descriptive for 0.11.1 onwards,它会说没有构建C-extensions。

【讨论】:

  • 感谢您告诉我,安迪。老实说,我不知道从哪里开始您对“pip install pandas”的建议。我必须在哪里和什么应用程序上运行文本?由于我刚开始学习 Python,我可能需要详细/逐步的指导。请让我知道怎么做。谢谢,
  • @sky404 你见过this question吗?希望对您有所帮助!
  • 我确实使用 pip 进行了安装,但仍然出现相同的错误。我正在使用 python 运行一个小型 Web 服务器,并且想使用 pandas。该错误将出现在我的网页上。如果我从本地 python 提示符尝试“import pandas”,我会得到一个不同的错误:SyntaxError: future feature unicode_literals is not defined
  • 不确定这是否对任何人有用,但使用 easy_install -U Cython 而不是 pip install Cython 允许我在 Win 8.1 64 上从源代码安装
  • 我在 linux (fedora 20) 上收到pip install pandas 的错误消息。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 或只是apt-get install cython
    • 是的,两种方式都可以。但我不确定为什么我对此投了反对票:-/
    【解决方案4】:

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

    您可以更改 pandas 的版本

    pip install --user pandas==0.22
    

    只有这对我有用:)

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题。 我使用命令 pip install pandas 安装了 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 的 Python 版本相同。

      【讨论】:

        猜你喜欢
        • 2021-09-28
        • 2021-09-30
        • 1970-01-01
        • 2023-03-17
        • 2020-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多