cx_Freeze的Pyserial运行时错误

时间:2018-04-30 18:54:02

标签: python raspberry-pi3 cx-freeze pyserial

我正在尝试在Raspberry Pi 3上使用cx_Freeze创建一个可执行文件。代码都编译没有问题,但我收到运行时错误:

  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 :(得分:0)

此问题与sys.getfilesystemencoding()返回None相关,如下所述:

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

我尝试了建议回滚到版本5.0.2,5.0.1,5.0,但这些只是引发了不同的问题。

我设法通过将/usr/lib/python2.7/test/test_support.py的第642行上的代码更改为硬编码字符串character.encode('UTF-8').decode('UTF-8')

来破解这一点

虽然我现在有这个工作,如果有人有一个适当的解决方案会很好吗?