前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python sublime 中文的问题汇总【收藏】

Python sublime 中文的问题汇总【收藏】

原创
作者头像
奥特曼超人Dujinyang
修改2021-02-18 17:37:41
7180
修改2021-02-18 17:37:41
举报
文章被收录于专栏:技术精英专栏技术精英专栏

Python sublime 中文编译和中文路径问题

转载请标明出处:undefinedhttps://blog.csdn.net/DJY1992/article/details/80272602 本文出自:【奥特曼超人的博客】

  • 中文字符编译问题汇总
  • 中文路径编译问题汇总

目录:

@toc


一、中文字符编译问题汇总

sublime 设置:可以用过2种方法打开 1. Preferences -> Browse Packages 2. 默认安装路径:C:\Program Files (x86)\Sublime Text\Data\Packages\ (个人)

1.1 控制台无输出 Decode error - output not utf-8

控制台无输出,文件带有中文字符时控制台会提示这个错误,解决方法:

找到 Python文件夹 —— Python.sublime-build

代码语言:txt
复制
{ 
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding": "cp936"
}
KARL奥特曼超人杜锦阳
KARL奥特曼超人杜锦阳

1.2 python2 or python3 环境问题

这个环境问题比较简单了,直接切换设置的python的执行者就可。(注意python是设置了环境变量的,如果没有,下面的 cmd 需要带入全路径即可。)

代码语言:txt
复制
{ 
    "cmd": ["python3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "encoding": "cp936"
}

全路径:

代码语言:txt
复制
 "cmd": ["xxxx/xxx/python3", "-u", "$file"],

1.3 UnicodeEncodeError:'ascii' codec can't encode character

原因:字符集的问题,字符串时会出现 " UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position" 的错误,原因是由于python基于ASCII处理字符的,当出现不属于ASCII的字符时,会出现错误信息,其它ASCII错误大部分都是由于中文字符引起。

解决:

代码语言:txt
复制
文件头部开头写入:指定文件字符集为utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

注意要和python的字符集对应。

二、中文路径编译问题汇总

2.1 路径中带有中文的问题

中文路径问题是sublime运行后什么提示都没有的情况,那这时要调出控制台查看了,一般会提示这个错误。

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

操作:

代码语言:txt
复制
 Preferences -> Browse Packages

返回上级目录,然后继续返回到 sublime 的根目录,如图:

米奇云奥特曼超人dujinyang
米奇云奥特曼超人dujinyang

打开之后:

KARL-dujinyang凹凸曼
KARL-dujinyang凹凸曼

只要设置这两句,保存,然后重启 Sublime,打开运行之后就会有提示了。

2.2 文件用中文命名的问题

问题:

python2.7下,我在一个文件中输入了点中文字符,然后保存为txt格式文件,之后读取输入至控制台没有报错。但是切换至python3.3下,读取同样一个文件,就报错,提示: /Users/nintenace/Desktop/learn_python Traceback (most recent call last):

File "/Users/nintenace/Desktop/learn_python/test.py", line 7, in

print(str)

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

Finished in 0.0s with exit code 1

操作:

代码语言:txt
复制
 Preferences -> Browse Packages -> Python -> Python.sublime-build

加上一句 env,比如这样:

代码语言:txt
复制
{
    "cmd": ["python3.3", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
    "env": {"LANG": "en_US.UTF-8"}
}

欢迎各位投稿补充 疑难杂症 篇。

<hr/>

<font color="red">||</font> 版权声明:本文为博主杜锦阳原创文章,转载请注明出处。

作者:奥特曼超人Dujinyang

来源:CSDN

原文:https://dujinyang.blog.csdn.net/

版权声明:本文为博主杜锦阳原创文章,转载请附上转载声明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python sublime 中文编译和中文路径问题
    • 一、中文字符编译问题汇总
      • 1.1 控制台无输出 Decode error - output not utf-8
      • 1.2 python2 or python3 环境问题
      • 1.3 UnicodeEncodeError:'ascii' codec can't encode character
    • 二、中文路径编译问题汇总
      • 2.1 路径中带有中文的问题
      • 2.2 文件用中文命名的问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档