0

我在我的 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

出了什么问题?我怎样才能解决这个问题?

4

3 回答 3

4

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

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

炒作#1

  • 你以前在 NumPy 1.3 和兼容版本的 SciPy 下运行
  • 你最近安装了 NumPy 1.4 但没有接触 SciPy ==>“旧”SciPy 坏了。
    补救措施:安装较新的 SciPy 或完全卸载它(尽管您可能正在使用/需要 SciPy,但并不知道,这取决于您使用的 NLTK 模块)
    替代补救措施:重新安装 NumPy 1.3 而不是 1.4。

Hyp #2(不太可能)

  • 您从未拥有过 SciPy,而 NLTK 很高兴,没有它就可以工作。
  • 你最近安装了 NumPy 1.4 (over 1.3)SciPy (over nothing)
  • 出于某种原因,NumPy 和 SciPy 不能很好地配合使用
    补救措施:卸载 SciPy
于 2010-02-02T21:01:57.087 回答
1

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

我通过 pypm 安装了 Fisher,并从二进制 dmg 安装了 numpy。在这种情况下,我假设某个二进制文件在某处感染了 PowerPC 二进制文件,因此最好将它们清除,然后从源代码重建。

我从 ~/Library/... 手动删除了它们,拉下了源代码(包括 scipy,现在还不如咬紧牙关),从源代码重新编译所有三个,两个小时后有了一个工作系统。

于 2012-01-24T19:00:10.960 回答
1

我在 Windows XP 上的 Python 2.6 上遇到了同样的问题,按照 mjv 的建议,我卸载了旧的 SciPy 模块并安装了最新的,在这个阶段我得到了 yaml 模块丢失的错误。

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

希望这可以帮助其他有同样问题的人。

阿蒂什

于 2010-08-09T23:19:50.983 回答