Ich greife auf eine Umgebungsvariable in einem Skript mit os.environ.get
zu und es wird KeyError
geworfen. Der Fehler wird nicht von der Python-Eingabeaufforderung ausgelöst. Dies läuft unter OS X 10.11.6 und ist Python 2.7.10.
Was ist los?
%Vor% Wie gewünscht, hier ist der Quellcode für score.py
Und hier ist log.py
Versuchen Sie zu laufen:
%Vor% So löschen Sie Ihre .pyc
-Dateien.
Bei der Suche nach Ihrem Problem stieß ich auf diese Frage , bei der ein Nutzer das gleiche Problem hatte: .get()
scheint anzusteigen ein Code%. In diesem Fall wurde laut diese akzeptierte Antwort durch eine KeyError
-Datei verursacht, die Code enthielt, in dem% Auf den Wert co_de% wurde per Schlüssel zugegriffen (dh .pyc
), während der Traceback den Code aus der aktualisierten Datei dict
zeigte, in der mydict['potentially_nonexistent_key']
verwendet wurde. Ich habe noch nie davon gehört, dass der Traceback auf aktuellen Code aus einer .py
-Datei verweist, aber einen Fehler zeigt, der durch eine veraltete .get()
-Datei ausgelöst wurde, aber es scheint mindestens einmal in der Geschichte von Python passiert zu sein. .
Es ist eine lange Einstellung, aber einen Versuch wert, dachte ich.
Ich würde empfehlen, dass Sie os.py debuggen, zum Beispiel unter Windows, in dem diese Implementierung verwendet wird:
%Vor%Und wenn ich es damit teste:
%Vor%Die Ausgabe ist:
%Vor%Es macht also Sinn, dass die Ausnahme nicht in den dict.get Dokumenten angezeigt wird.
Wenn Sie die Python-Module nicht beschädigen oder debuggen möchten, versuchen Sie auf jeden Fall, die * .pyc-Dateien zu bereinigen, und versuchen Sie, NODE_ENV
korrekt einzurichten. Und wenn das alles nicht funktioniert, starten Sie Ihr Terminal neu, um es zu löschen.
Tags und Links python python-2.7