linux 运行python 看不到异常信息_linux python运行报编码错误
一次重启服务器后,supervisor接管的python脚本中的函数open()和print()都会报下面的编码错误:
UnicodeEncodeError: 'ascii' codec can't encode
使用的是python3,按理说编码都会默认utf-8,而且本地运行的python脚本并没有这个问题。
经大佬指点,增加环境变量export LC_ALL="en_US.UTF-8"后,再重启supervisor,问题解决
LC_ALL相关信息:
1.Locale说明
Locale是一个软件在运行时的语言环境,。是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的。它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。
一个locale的书写格式为: 语言[地域[.字符集]]。完全的locale表达方式是 [语言[地域][.字符集] [@修正值]。例如:
zh_CN.GB2312 => 中文_中华人民共和国+国标2312字符集。
2.Locale查看
(1)locale把按照所涉及到的文化传统的各个方面分成12个大类
[root@TDExpress1620_Sles11:~]$ locale
LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" #语言符号及其分类
LC_NUMERIC="en_US.UTF-8" #数字
LC_TIME="en_US.UTF-8" #时间显示格式
LC_COLLATE="en_US.UTF-8" #比较和排序习惯
LC_MONETARY="en_US.UTF-8" #货币单位
LC_MESSAGES="en_US.UTF-8" #信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等
LC_PAPER="en_US.UTF-8" #默认纸张尺寸大小
LC_NAME="en_US.UTF-8" #姓名书写方式
LC_ADDRESS="en_US.UTF-8" #地址书写方式
LC_TELEPHONE="en_US.UTF-8" #电话号码书写方式
LC_MEASUREMENT="en_US.UTF-8" #度量衡表达方式
LC_IDENTIFICATION="en_US.UTF-8" #对locale自身包含信息的概述
LC_ALL=en_US.UTF-8
(2)查看标准字符集列表
[root@TDExpress1620_Sles11:~]$ locale -a
zh_CN
zh_CN.gb18030
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.utf8
zh_SG
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.utf8
常用字符集:en_US.utf8、zh_CN.gb2312、zh_CN.gbk、zh_CN.utf8等
3.Locale的设定
LC_ALL和LANG优先级的关系:LC_ALL > LC_* >LANG
(1)如果需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX即可。或者设定LANG=zh_CN.XXXX也可以,但是LC_不要有任何特殊设定才可以(因为LC_优先级高)。
(2)如果需要个性化的环境,例如只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定LANG=en_US.XXXX,然后 LC_CTYPE=zh_CN.XXXX就可以了。
(3)假如什么也不做的话,也就是LC_ALL,LANG和LC_*均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。
4.查看与设定字符集实践
(1)查看当前系统字符集三种方式(LC_ALL、LC_CTYPE和LANG),以查看LANG为例:
[root@TDExpress1620_Sles11:~]$ echo $LANG
en_US.UTF-8 [root@TDExpress1620_Sles11:~]$ env |grep -i LANG
LANG=en_US.UTF-8 [root@TDExpress1620_Sles11:~]$ locale |grep -i LANG
LANG=en_US.UTF-8
(2)更改系统字符集
export LANG=
或者
export LC_ALL=
备注:直接执行上述命令,可以临时修改系统字符集。如果写入环境变量可以永久改变字符集。
(3)取消当前系统字符集(设定为空)
unset LANG
备注:直接执行上述命令,可以临时修改系统字符集。如果写入环境变量可以永久改变字符集。
linux 运行python 看不到异常信息_linux python运行报编码错误相关推荐
- linux 运行python 看不到异常信息_Linux异常解决:/usr/bin/env python\r no such file or directory...
我有两台电脑,一台win10系统,一台Liunx系统.今天在win10上面写了一个ROS程序,拷贝到Linux上面,执行rosrun命令出现异常信息/usr/bin/env python\r no s ...
- linux查询tcp异常,linux服务器内存cpu 流量tcp异常信息记录python脚本
#!/usr/bin/python #coding:utf-8 import commands import os import re import datetime #if mem util > ...
- Python traceback 模块, 打印异常信息
Python traceback 模块, 打印异常信息 参考文章: (1)Python traceback 模块, 打印异常信息 (2)https://www.cnblogs.com/xudong-b ...
- set ff=unix linux报编码错误直接vi
linux报编码错误直接vim文件 查看编码:set ff 设置编码 :set ff=unix 然后保存 unix编码 更多编码就替换 ok在执行
- Linux:査看文件的详细信息
导读 Linux中stat是査看文件详细信息的命令. 1.命令格式: stat [选项] 文件名/目录名 2.选项: -f:査看文件所在文件系统信息,而不是査看文件信息. 3. 案例 案例1:査看文件 ...
- python中traceback获取异常信息
在日常工作中,我们常常会碰到异常,我们想在异常发生的时候,不但能显示异常发生的位置,还能看到异常方法被调用的堆栈信息,在python中怎么实现呢? 实际上python提供了一个traceback来实现 ...
- 自学python看什么书-如何系统地自学 Python?
0709更: 上周旁听了一个大学学长组织的线上Python交流会,里边不乏充斥着各位行业大牛,讲的内容确实精彩,可能对于Python经验5年+的人来说,是受益匪浅,欢迎程度极高,恨不得跳出屏幕来表示赞 ...
- 想学python看什么书-请问想学python和JAVA得看什么书?
很多Python大佬都建议去Python官网看documentation,觉得那才是最新最有用的,这点小编并不否认,但是对于英语不太好的小伙伴们或者尚未接触过编程的小白来说,那就相当于看天书一样难啦~ ...
- 零基础学python看什么书-零基础学python推荐几本python学习的书籍
原标题:零基础学python推荐几本python学习的书籍 无论是否已经学习了一些其他的编程语言,在开始学习Python时,都应该先从Python的基本概念学起,这样在之后的编程实战中就能尽量减少因为 ...
最新文章
- html 清除float,css中如何清除float
- 深入浅出JProfiler
- wxWidgets:工具栏概述
- mui的学习图片预览
- 按群计数10以内_【乐玩乐学】有趣的计数活动
- 苦逼的程序员怎么发展
- C# 调用命令行,参数有空格
- 机器学习专题(二):2.1机器学习的数据
- mysql中的on的执行顺序_MySQL -- join , on , where 的执行顺序
- D-GAN用于时空预测的深度生成对抗网络
- 谈中国分布式数据库商业之路:OSM与DB-Inside
- Ubuntu20破解管理员root密码忘记密码找回
- Mac上制作Linux U盘启动盘
- 【离散数学】第二章 笔记(完)
- 这5个“计算机专业”就业很吃香,毕业生需求量大,还不会过时
- Ubuntu 命令大全 Ubuntu技巧 (转)
- android 7.1快捷方式App Shortcuts
- 如何开发一款前端工具
- 给通信专业研究生——安心完成培养,你不是在劣势下和计算机学生抢饭碗来的
- 服务器看门狗芯片电路图,SP706看门狗芯片SP706应用电路图.pdf