安装numpy打破了NLTK(OS X 10.6.2,Python 2.6)

时间:2010-02-02 20:37:27

标签: python numpy nltk

我的Mac(OS X 10.6.2)上安装了NLTK(py26-nltk)。然后我安装了numpy。现在当我尝试导入nltk时,我得到了这个:

>>> import nltk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "nltk/__init__.py", line 83, in <module>
    from collocations import *
  File "nltk/collocations.py", line 39, in <module>
    from nltk.metrics import ContingencyMeasures, BigramAssocMeasures, TrigramAssocMeasures
  File "nltk/metrics/__init__.py", line 14, in <module>
    from scores import *
  File "nltk/metrics/scores.py", line 15, in <module>
    from scipy.stats.stats import betai
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/stats/__init__.py", line 7, in <module>
    from stats import *
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/stats/stats.py", line 203, in <module>
    from morestats import find_repeats #is only reference to scipy.stats
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/stats/morestats.py", line 7, in <module>
    import distributions
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/scipy/stats/distributions.py", line 27, in <module>
    import vonmises_cython
  File "numpy.pxd", line 30, in scipy.stats.vonmises_cython (scipy/stats/vonmises_cython.c:2939)
ValueError: numpy.dtype does not appear to be the correct type object

出了什么问题?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

似乎更多的是[版本] SciPy和NumPy 版本之间的不兼容问题,而不是NLTK和Numpy之间的问题。
虽然NLTK不需要SciPy,但它是可选的导入,如果可用则会加载。

关于你的情况的一些假设:

Hyp#1

  • 您以前在NumPy 1.3下运行,并且兼容SciPy版本
  • 您最近安装了NumPy 1.4,但未触及SciPy ==&GT; “旧”的SciPy被打破了 补救措施:安装较新的SciPy或完全卸载(尽管您可能正在使用/需要SciPy,但不知道它,具体取决于您使用的NLTK模块)
    替代补救措施:在1.4上重新安装NumPy 1.3。

Hyp#2(不太可能)

  • 你从未有过SciPy和NLTK很开心,没有它就能工作。
  • 您最近安装了NumPy 1.4(超过1.3) SciPy(无所不用)
  • 由于某种原因,NumPy和SciPy并不能很好地合作 补救措施:卸载SciPy

答案 1 :(得分:1)

我在Windows XP上的Python 2.6上遇到了同样的问题,并且正如mjv所建议的那样,我卸载了我的旧SciPy模块并安装了最新版本,在此阶段我收到了yaml模块丢失的错误。

安装PyYAML模块后,“import nltk”语句没有出现任何错误。

希望这有助于其他人遇到同样的问题。

Atish

答案 2 :(得分:1)

迟到了,但我遇到了这个问题,numpy和fisher,osx(雪豹, 但我认为这会发生在其他x86机器上。)

我通过pypm安装了fisher,并从二进制dmg安装了numpy。在某种情况下 像这样我假设在二进制文件的某个地方感染了PowerPC 二进制,所以最好将它们清除掉,并从源头重建。

我从〜/ Library / ...手动删除了它们, 拉下来源(包括scipy,现在也可能咬掉那个子弹), 从源头重新编译了这三个,两个小时后就有了一个工作系统。