Python os.environ löst einen Schlüsselfehler aus?

9

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

%Vor%

Und hier ist log.py

%Vor%     
Chris B. 01.09.2016, 20:33
quelle

2 Antworten

9

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.

    
elethan 01.09.2016, 21:11
quelle
-5

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.

    
BPL 01.09.2016 20:47
quelle

Tags und Links