在sublime Text 2中安裝python環境

1.下載sublime Text 2 安裝

2安裝python插件

3下載 python

4測試能否在sublime中運行代碼

在測試時crtl+B 無法在sublime中顯示結果,報錯 :
1.TypeError: environment can only contain strings
2.UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc0 in position 9: ordinal not in range(128)
解決辦法:

保證你的安裝路徑,運行文件路徑不含中文。

1.調整 preferances–>browse packages—>python/Python.sublime-build
設置一下其編碼
{
“cmd”: [“python”, “-u”, “$file”],
“file_regex”: “^[ ]File \”(…?)\”, line ([0-9]*)”,
“selector”: “source.python”,
“encoding”: “utf-8”
}
2.調整 preferances–>browse packages—>Default/exec.py中刪除

45 46行
for k, v in proc_env.iteritems():
proc_env[k] = os.path.expandvars(v).encode(sys.getfilesystemencoding())

目前配置是這樣。結果如下
運行結果

還有一種問題就是:crtl+B 沒反應。這個應該是python的安裝路徑,環境變量沒有配置。相關解決辦法:
調整 preferances–>browse packages—>python/Python.sublime-build
裏面的內容爲:
{
“cmd”: [“python”, “-u”, “$file”],
“file_regex”: “^[ ]File \”(…?)\”, line ([0-9]*)”,
“selector”: “source.python”
}
修改爲:
{
“cmd”: [“python”, “-u”, “$file”],
“path”:”c:/python27”,
“file_regex”: “^[ ]File \”(…?)\”, line ([0-9]*)”,
“selector”: “source.python”
}
手動指定了python.exe的路徑,讓sublime執行的時候可以找到

PYTHONIOENCODING 亂碼相關

在有些文章中說,強制將python編碼改成utf-8不好,具體解決辦法可以看PYTHONIOENCODING 亂碼相關
目前沒有體驗到這種情況。

Sublime Text 2/3 [Decode error - output not utf-8] 問題

問題:

Sublime Text 在build Python時,如果python源代碼裏有中文,例如“print(‘中文’)”,Sublime Text 會報
[Decode error - output not utf-8]
分析:

在Sublime Text裏,新建一個python源碼文件,內容爲:

import sys
print (sys.stdin.encoding)
print (sys.stdout.encoding)

ctrl + B build該文件。默認輸出應該是:

cp936
cp936

這意味着,python在編譯運行源碼後,默認將輸出結果以cp936編碼,發送給Sublime Text。而Sublime Text 中python build的默認接收編碼是UTF-8。Sublime Text在接收到python輸出後,試圖以utf-8解碼cp936編碼的流。當cp936編碼的流中沒有漢字時,因爲英文字符集在cp936和utf-8中的編碼兼容,所以用utf-8解碼不會出錯;當cp936編碼的流中有漢字時,因爲漢字字符集在cp936與utf-8的編碼不兼容,所以用utf-8解碼就會錯誤。

最終Sublime Text就會報[Decode error - output not utf-8]錯誤。

解決辦法:修改Sublime Text的python build的設置。將其編碼設置爲cp936。

打開Python.sublime-build文件,並添加”encoding”:”cp936”這一行,保存即可

preferances–>browse packages—>python/Python.sublime-build


{  
    "cmd": ["python", "-u", "$file"],  
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",  
    "selector": "source.python",
    "encoding": "cp936" 
}

運行結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章