设置:
以下场景:
我用以下行修复了设置PYTHONIOENCODING环境变量的问题:
export PYTHONIOENCODING="utf-8";
在流浪档案里。在
尽管这在某种程度上解决了这个问题,但我有一种奇怪的感觉:要么我错了,要么Python软件开发人员错了,要么Ansible开发人员搞错了,要么这是某种Linus/Ubuntu发行版复活节彩蛋,这正是2.7.9python发行版的产物,它让sotware开发人员感到恼火,让他们思考,而不是去做。在
严肃的问题是:“这个问题的真正解决办法是什么?”。在
问题可能是远程计算机(即您的客户机)没有生成区域设置
en_US.UTF-8
。本地有LC_CTYPE=en_US.UTF-8
。当ansible开始在远程机器上运行时,它继承了相同的东西(ssh会这样做,可能还有ansible,我不确定),因此,在远程,ansible也会与LC_CTYPE=en_US.UTF-8
一起运行。如果该语言环境不存在,诸如Python之类的程序将返回到默认语言环境C
,它只支持ASCII。在为了避免这个问题,我确保生成了locale。我有一个"common"ansible模块,它是列出的所有服务器的第一个模块,它执行一些对所有服务器都通用的基本配置。模块做的第一件事(因此在任何服务器上做的第一件事)是:
(我也生成
en_DK.UTF-8
的原因不是我是丹麦人[我不是],而是我经常使用LC_TIME=en_DK.UTF-8
,因为我喜欢ISO8601中的日期。)相关问题 更多 >
编程相关推荐