导入pandas显示ImportError:无法导入名称哈希表

时间:2013-01-20 08:48:56

标签: python-3.x pandas

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

5 个答案:

答案 0 :(得分:23)

更新:我现在建议使用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,理想情况下你应该使用最新的稳定版本。 < / p>


看起来你已经尝试了install from source,文档提到了这一点:

  

从git存储库安装需要最近安装Cython,因为cythonized 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扩展。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

您可以通过以下方式更改pandas的版本

pip install --user pandas==0.22

这仅对我有用:)

答案 4 :(得分:0)

我遇到了同样的问题。 我使用命令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

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