Быстрое, но не всегда работающее решение
Вначале скрипта надо прописать:
# -*- coding: utf-8 -*-
Соответственно, сам текст скрипта должен быть в кодировке UTF-8.
UTF-8 и Python 2.7.x
Но не все так просто. В Python 2.7.x, даже если прописать эту строку в начало файла с исходником, даже если все файлы с исходниками будут в кодировке UTF-8, то не исключена ситуация, что всеравно появится ошибка:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
В куче статей, которыми наполнен интернет, почему-то предлагаются частные решения этой глобальной проблемы. Предлагают использовать запись строк с буквой u в начале: u"Это строка". Другой предлагаемый метод - если у вас встречаются строки на русском языке или с кириллическими символами, перекодируйте их в юникод с помощью встроенного в строку метода decode():
a="Строка в UTF-8"
b=a.decode("utf-8")
Но такой метод решения проблем - это все равно что вилкой копать скалу. Исковыряете весь код лишними строками, а проблема как была так и останется.
Однако решение все-таки есть
В начале модуля, в котором возникает ошибка, надо прописать:
# Устранение проблем с кодировкой UTF-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
И ошибка кодировки исчезнет.