Pergunta

Eu tinha uma instalação funcional do NLTK (PY26-NLTK) no meu Mac (OS X 10.6.2). Então eu instalei Numpy. Agora, quando tento importar o NLTK, entendo isso:

>>> 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

O que deu errado? Como posso consertar isso?

Foi útil?

Solução

Parece ser mais uma questão de [versão incompatibilidade entre scipy e numpy versões do que entre NLTK e Numpy.
Embora o Scipy não seja necessário para o NLTK, é uma importação opcional e carregará se disponível.

Algumas hipóteses sobre sua situação:

Hyp #1

  • Você estava correndo com o Numpy 1.3, juntamente com uma versão compatível do Scipy
  • Você instalou recentemente o Numpy 1.4, mas não tocou no Scipy ==> "Old" Scipy está quebrado.
    Solução: Instale o Scipy mais recente ou desinstale -o por completo (embora você possa estar usando/precisando do Scipy, sem saber, dependendo dos módulos do NLTK que você usa)
    Solução alternativa: reinstale o Numpy 1.3 acima de 1.4.

Hyp #2 (menos provável)

  • Você nunca teve o Scipy e o NLTK estava feliz, trabalhando sem ele.
  • Você instalou recentemente o Numpy 1.4 (acima de 1.3) e Scipy (sobre nada)
  • Por algum motivo, Numpy e Scipy não jogue bem juntos
    Solução: Desinstala Scipy

Outras dicas

Eu tive o mesmo problema no Python 2.6 no Windows XP e, como sugerido por MJV, desinstalei meu antigo módulo Scipy e instalei o mais recente, na qual está faltando o erro que o módulo YAML estava faltando.

Depois de instalar o módulo Pyyaml, a instrução "Import nltk" não deu nenhum erro.

Espero que isso ajude qualquer outra pessoa a ter o mesmo problema.

Atish

Chiming em um pouco tarde, mas encontrei esse problema com Numpy e Fisher, no OSX (Snow Leopard, mas suponho que isso acontecesse em outras máquinas X86).

Eu havia instalado Fisher via Pypm e instalei Numpy a partir de um DMG binário. Em uma situação como essa, presumo que em algum lugar ao longo do caminho um binário tenha sido infectado com um binário do PowerPC, por isso é melhor limpá -los e se reconstruir da fonte.

Eu os excluí manualmente de ~/biblioteca/..., puxei as fontes (incluindo o Scipy, também poderia morder essa bala agora), recompilada todos os três da fonte e duas horas depois tinha um sistema de trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top