суть проблемы в следующем:
ось winxp, python 3.1
есть скрипт, который по ходу своей работы выводит на консоль результаты своей деятельности (на русском языке)
скрипт можно запускать с различными параметрами (модуль argparse), комментарии к параметрам тоже на русском языке
на ПК, где подразумевается работа скрипта, python не установлен (не беда, есть py2exe)
при работе со вторым питоном ни каких проблем с выводом на консоль параметров с их описаниями и результатов работы не было (т.е. и скрипт и exe, собранный py2exe, работали совершенно одинаково)
после перехода на 3.1 скрипт работает так, как от него и ожидалось, т.е. к выводу на консоль ни каких притензий, а вот exe-шник, собранный cx_Freeze, выводит всякие кракозябры
во втором питоне проблемы с выводом решались вставкой строки:
sys.stdout = codecs.getwriter('cp866')(sys.stdout, errors='replace')
File "C:\Python31\lib\site-packages\argparse.py", line 2319, in print_help
self._print_message(self.format_help(), file)
File "C:\Python31\lib\site-packages\argparse.py", line 2333, in _print_message
file.write(message)
File "X:\Python31-x32\lib\codecs.py", line 356, in write
TypeError: must be str, not bytes