Код 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), скомпилированный исполняемый файл будет работать без проблем.
Что я уже пробовал:
- Я вставил следующий код как самое первое, что вызывает мое приложение:
import codecs
codecs.register(lambda name: codecs.lookup('utf-8') if name == 'cp65001' else None)
Вызывается 'chcp 65001' перед компиляцией с PyInstaller, поэтому вся компиляция выполняется под кодовой страницей 65001
Запустил cmd.exe в режиме администратора
Это не решило проблему.
Системная информация:
- Windows 7 Enterprise, Пакет обновления 1
- Python 3.5
- PyInstaller 3.0
- Команда, которую я использую для изменения кодовой страницы: chcp 65001
1 ответ
Похоже, ошибка в PyInstaller-3.0. Я открыл вопрос на их странице gihub. Я буду обновлять здесь, если какие-либо обходные пути найдены.