如果通过配置管理器调用,则getfilesystemencoding()不同

2024-05-17 06:23:08 发布

您现在位置:Python中文网/ 问答频道 /正文

如果通过配置管理(在我的例子中是salt stack)调用脚本,它就会失败。如果通过shell调用,它可以工作。你知道吗

我使用工具dumpenv来分析环境的差异。你知道吗

getfilesystemencoding()不同:

dumpenv-getfilesystemencoding-differs

环境变量看起来没什么不同:

dumpenv-os-environment-variables

是什么导致getfilesystemencoding()在右侧出错?你知道吗

Python版本:2.7


Tags: 工具版本脚本环境stack环境变量配置管理差异
2条回答

getfilesystemencoding()文档指向nl_langinfo文档,表明LC_CTYPE用于确定编码。你知道吗

因此,如果您的环境有LC_CTYPE="C.UTF-8",您可能会有UTF-8作为getfilesystemencoding()输出,而不是ANSI_X3.4-1968(更好地称为US-ASCII)。你知道吗

Python选择使用LC\u CTYPE进行文件系统编码。LC\u CTYPE=“C”导致ASCII文件系统编码。你知道吗

仅供参考,python3.7实现了PEP 538PEP 540。它在默认情况下使用UTF-8,即使LC\u CTYPE=“C”。你知道吗

相关问题 更多 >