Für deutsche Windowsinstallation nehmen Editoren idR cp1252 (Windows-1252) als Voreinstellung. Heisst wenn Du einen Editor aufmachst und nicht dessen Voreinstellung dauerhaft umgestellt hast, sollte er Dateien mit cp1252 kodieren. Dann MUSS der "coding"-Kommentar darauf zeigen, sonst sieht Python da alles mögliche nur nicht Deine Umlaute. Damit hättest Du das Editor-Encoding --> Pythonsource-Encoding Problem gelöst.
Für das Output-Encoding musst Du das ggf. separat selbst lösen:
Bytestrings sollte man zunächst in unicode überführen (generell immer eine gute Idee, da man pythonintern viel besser mit Unicode hantieren kann):
Code: Alles auswählen
'äöüß'.decode('cp1252')
Code: Alles auswählen
# coding: cp1252
u'äöüß'
# ist in Python 2.x äquivalent zu
'äöüß'.decode('cp1252')
Code: Alles auswählen
print u'äöü߀'.encode('utf-??')