Во-первых, в отношении этого решения:
# -*- coding: utf-8 -*-
print u"åäö".encode('utf-8')
Невозможно явно печатать с данной кодировкой каждый раз. Это будет повторяющимся и подверженным ошибкам.
Лучшим решением является изменение sys.stdout
в начале вашей программы для кодирования с выбранной кодировкой. Вот одно из решений, которое я нашел на Python: Как выбрано sys.stdout.encoding? , в частности комментарий «toka»:
import sys
import codecs
sys.stdout = codecs.getwriter('utf8')(sys.stdout)