Python sublime 中文編譯和中文路徑問題
轉載請标明出處: https://blog.csdn.net/DJY1992/article/details/80272602 本文出自:【奧特曼超人的部落格】
- 中文字元編譯問題彙總
- 中文路徑編譯問題彙總
目錄:
sublime 設定:可以用過2種方法打開
1. Preferences -> Browse Packages
2. 預設安裝路徑:C:\Program Files (x86)\Sublime Text\Data\Packages\ (個人)
控制台無輸出,檔案帶有中文字元時控制台會提示這個錯誤,解決方法:
找到 Python檔案夾 —— Python.sublime-build
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp936"
}
這個環境問題比較簡單了,直接切換設定的python的執行者就可。(注意python是設定了環境變量的,如果沒有,下面的
cmd
需要帶入全路徑即可。)
{
"cmd": ["python3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "cp936"
}
全路徑:
"cmd": ["xxxx/xxx/python3", "-u", "$file"],
原因:字元集的問題,字元串時會出現 ” UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\xa0’ in position” 的錯誤,原因是由于python基于ASCII處理字元的,當出現不屬于ASCII的字元時,會出現錯誤資訊,其它ASCII錯誤大部分都是由于中文字元引起。
解決:
檔案頭部開頭寫入:指定檔案字元集為utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
注意要和python的字元集對應。
中文路徑問題是sublime運作後什麼提示都沒有的情況,那這時要調出控制台檢視了,一般會提示這個錯誤。
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
操作:
Preferences -> Browse Packages
傳回上級目錄,然後繼續傳回到
sublime
的根目錄,如圖:
打開之後:
隻要設定這兩句,儲存,然後重新開機
Sublime
,打開運作之後就會有提示了。
問題:
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]
Preferences -> Browse Packages -> Python -> Python.sublime-build
加上一句
env
,比如這樣:
{
"cmd": ["python3.3", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"env": {"LANG": "en_US.UTF-8"}
}
歡迎各位投稿補充
疑難雜症篇。
|| 版權聲明:本文為部落客杜錦陽原創文章,轉載請注明出處。