我将celery == 4.2.1与msgpack + msgpack_numpy用作Python3.6上的序列化器
我遇到一个问题,即由于UnicodeDecodeError,芹菜任务成功记录器无法记录。
[2018-10-24 14:03:44,944: WARNING/ForkPoolWorker-6] --- Logging error ---
[2018-10-24 14:03:44,944: WARNING/ForkPoolWorker-6] Traceback (most recent call last):
[2018-10-24 14:03:44,944: WARNING/ForkPoolWorker-6] File "/usr/lib/python3.6/logging/__init__.py", line 994, in emit
stream.write(msg)
[2018-10-24 14:03:44,944: WARNING/ForkPoolWorker-6] UnicodeEncodeError: 'ascii' codec can't encode characters in position 925-930: ordinal not in range(128)
我对记录器为何尝试使用“ ascii”编解码器感到困惑。就我所知,我不是要求这样做。这些记录器是芹菜默认设置。
我还看到了有关此错误的其他问题,这些问题建议设置LANG或LC_ALL并检查sys.getdefaultencoding()
的输出。
我在日志记录前(我编辑了芹菜源)运行sys.getdefaultencoding()
,并且得到了预期的utf-8
。
有人可以指出我要更改的代码部分吗?据我了解,'ascii'不应是芹菜记录器使用的默认编码。