Код Python 3.5, скомпилированный с PyInstaller 3.0, вылетает в кодовой странице 65001

Я компилирую приложение командной строки, используя PyInstaller 3.0 с python 3.5 для Windows.

Когда я запускаю приложение в CMD.EXE, настроенном для кодовой страницы 65001, скомпилированный исполняемый файл не запускается с сообщением:

Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: cp65001

Если CMD.EXE настроен для его кодовой страницы по умолчанию (437), скомпилированный исполняемый файл будет работать без проблем.

Что я уже пробовал:

  1. Я вставил следующий код как самое первое, что вызывает мое приложение:

import codecs codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None)

  1. Вызывается 'chcp 65001' перед компиляцией с PyInstaller, поэтому вся компиляция выполняется под кодовой страницей 65001

  2. Запустил cmd.exe в режиме администратора

Это не решило проблему.

Системная информация:

  • Windows 7 Enterprise, Пакет обновления 1
  • Python 3.5
  • PyInstaller 3.0
  • Команда, которую я использую для изменения кодовой страницы: chcp 65001

1 ответ

Похоже, ошибка в PyInstaller-3.0. Я открыл вопрос на их странице gihub. Я буду обновлять здесь, если какие-либо обходные пути найдены.

Другие вопросы по тегам