2010-11-21 9 views
0

Ich benutze Simplejson, um Daten von der New York Time API zu erhalten. Es funktioniert, wenn ich die Datei mit dem Befehl "python test.py" durch das Terminal ausführen, aber nicht, wenn ich TextMate mit Befehl + R durchführe. Ich führe die exakt gleiche Datei. Warum ist das?Warum funktioniert simplejson in Terminal und nicht in TextMate?

Ich starte Snow Leopard 10.6.4, TextMate 1.5.10 und Python 2.6.4.

Bearbeiten: Sorry für das Vergessen, dies zu schließen: von "funktioniert nicht", ich meine es heißt "Kein Modul namens Simplejson". Ich habe auch bemerkt, dass dies auch für PyMongo passiert ("Kein Modul namens Pymongo").

+1

simplejson behandelt JSON, keine Daten bekommen. –

+0

Versuchen Sie, dieses Skript sowohl in textmate als auch in terminal auszuführen: 'import sys; Drucken Sie "\ n" .join (sys.path) 'und fügen Sie diese Ausgabe zu Ihrer Frage hinzu. Das sagt uns, welcher Pfad fehlt. –

Antwort

1

Was funktioniert nicht? Sie sollten mehr Informationen wie Fehlermeldungen und was nicht geben. Ich nehme jedoch an, dass die Version von Python anders ist, und simplejson ist nicht auf Ihrem PYTHONPATH, wenn es von Textmate gestartet wird.

0

Nur damit Sie wissen, simplejson wurde in die Standardbibliothek der Python 2.6-Distribution als json aufgenommen. Wenn Sie also nicht mit dem Importproblem ringen wollen, versuchen Sie einfach, alle Ihre Referenzen auf simplejson zu json stattdessen zu ändern.

Aber, wie vorgeschlagen, wird dies ein PythonPath-Problem werden. Führen Sie diese Zeilen im Python-Interpreter und in TextMate aus und vergleichen Sie die Ergebnisse.

import sys 
print sys.path 

Um herauszufinden, wo simplejson installiert ist (wenn Sie nicht wissen), das in der Python-Interpreter tun:

import simplejson 
print simplejson.__file__ 

Wenn Sie wollen/müssen PYTHONPATH für Textmate manuell einstellen, Sie kann dies tun, indem Sie es unter Einstellungen> Erweitert> Shell-Variablen hinzufügen.