【发布时间】:2020-10-27 12:55:01
【问题描述】:
我正在开发一个定制的 linux。当我使用requests 进行一些HTTP 发布时,出现了一个导入异常,在idna 中出现了一些东西。再说一句,我的系统是little-endian linux。
>>> from uts46data import uts46data
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
LookupError: unknown encoding: utf-32-be
>>>
我已经检查了如下编码。
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>> sys.getfilesystemencoding()
'ANSI_X3.4-1968'
我猜这是编码问题,我该怎么办?
更多信息如下。
/ # python -c "import sys;print(sys.version)"
2.7.8 (default, Jul 7 2020, 07:25:41)
[GCC 7.3.1 20180425]
/ # python -c "import codecs;print codecs.lookup('utf-32-be')"
Traceback (most recent call last):
File "<string>", line 1, in <module>
LookupError: unknown encoding: utf-32-be
/ #
【问题讨论】:
-
你能告诉我们更多关于你的linux是如何定制的吗?特别是,python是如何构建的?您是从源代码构建的吗?
-
@snakecharmerbs 是的,我必须从源代码构建 python。该系统就像一个嵌入式系统,构建内核,然后添加一些应用程序。
-
我会检查
make和configure的输出。我怀疑构建环境中缺少编解码器模块构建 utf-32-be 所需的东西。 -
“Lib/encodings”目录下似乎缺少utf-32-be.py。固定。
-
@lxyscls 如果这是解决方案,您可以发布并将其标记为答案吗?
标签: python python-2.7 build cpython python-internals