Frage

Ich hatte eine funktionierende Installation von NLTK (py26-nltk) auf meinem Mac (OS X 10.6.2). Dann installierte ich numpy. Nun, wenn ich zu importieren nltk versuchen, bekomme ich diese:

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

Was schief gelaufen ist? Wie kann ich dieses Problem beheben?

War es hilfreich?

Lösung

Es scheint eher eine Frage der [Version] Inkompatibilität zwischen SciPy und NumPy Versionen als zwischen NLTK und Numpy zu sein.
Während SciPy nicht für NLTK erforderlich ist, es ist ein optionaler Import und wird, falls verfügbar laden.

Einige Hypothese in Bezug auf Ihre Situation:

Hyp # 1

  • Sie früher wurden unter NumPy 1.3 zusammen mit einer kompatiblen Version von SciPy läuft
  • Sie vor kurzem installiert NumPy 1.4 aber nicht SciPy berühren ==> "Alter" SciPy ist gebrochen.
    Abhilfe: neuere SciPy installieren oder ganz deinstallieren (obwohl Sie können unter Verwendung von / benötigen SciPy, ohne es zu wissen, abhängig von den Modulen von NLTK Sie verwenden)
    Mögliche Abhilfe:. Neuinstallation NumPy 1.3 über 1.4

Hyp # 2 (weniger wahrscheinlich)

  • Sie hatte nie SciPy und NLTK war glücklich, ohne daran zu arbeiten.
  • Sie haben vor kurzem installiert NumPy 1.4 (über 1,3) und SciPy (über nichts)
  • Aus irgendeinem Grund NumPy und SciPy nicht spielen schön zusammen
    Abhilfe: Deinstallieren SciPy

Andere Tipps

Ich hatte das gleiche Problem auf Python 2.6 unter Windows XP und wie mjv vorgeschlagen, ich deinstalliert mein altes SciPy Modul und installiert die neueste, in welcher Phase ich den Fehler bekam, dass das yaml Modul fehlt.

Nach dem PyYAML Installation des Moduls, das "Import nltk" Anweisung keinen Fehler gegeben hat.

Hope, das hilft jemand anderes das gleiche Problem.

Atish

Chiming etwas spät, aber ich lief in dieses Problem mit numpy und Fischer, auf osx (Schneeleopard, aber ich nehme an, dies auf anderen x86-Rechner der Fall wäre).

ich hatte Fischer über pypm installiert und numpy von einem binären dmg installiert. In einer Situation, wie dies gehe ich davon aus, dass irgendwo auf dem Weg ein binäre mit einem PowerPC infiziert wurde binär, so ist es am besten, sie wegzuräumen, und von der Quelle wieder aufzubauen.

Ich löschte sie manuell aus ~ / Library / ..., die Quellen nach unten gezogen (einschließlich scipy, könnte diese Kugel nun auch beißen), alle drei von der Quelle neu kompiliert, und zwei Stunden später hatte ein funktionierendes System.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top