Pyserial Runtime Ошибка с cx_Freeze - PullRequest
       38

Pyserial Runtime Ошибка с cx_Freeze

0 голосов
/ 30 апреля 2018

Я пытаюсь создать исполняемый файл, используя cx_Freeze на Raspberry Pi 3. Код все компилируется без проблем, но я получаю ошибку времени выполнения:

  import serial
File "/home/pi/.virtualenvs/cv/local/lib/python2.7/site-packages/serial/__init__.py, line 12 in <module> standard_library.install_aliases()
File "/home/pi/.virtualenvs/cv/local/lib/python2.7/site-packages/future/standard_library/__init__.py", line 487, in install_aliases
  from future.moves.test import support
File "/usr/lib/python2.7/test/test_support.py", line 642, in <module>
  character.encode(sys.getfilesystemencoding())\
TypeError: encode() argument 1 must be string, not None

Код отлично работает при запуске из исходного кода. Ошибка отображается только при запуске скомпилированной версии.

У кого-нибудь есть идеи? Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2018

Проблема связана с sys.getfilesystemencoding() возвратом None, как описано здесь:

https://github.com/anthony-tuininga/cx_Freeze/issues/323

Я попробовал предложенный откат до версий 5.0.2, 5.0.1, 5.0, но они просто вызвали другие проблемы.

Мне удалось взломать это, изменив код в строке 642 /usr/lib/python2.7/test/test_support.py на жестко закодированную строку character.encode('UTF-8').decode('UTF-8')

Хотя у меня сейчас это работает, было бы неплохо найти правильное решение, если у кого-нибудь оно есть?

...