【env】Sublime配置Pytho

新建編譯環境

在sublime菜單欄中Tools => Build System => New Build System...,輸入一下內容並保存為 Python3.sublime-build

{      "cmd": ["/usr/local/bin/python3", "-u", "$file"],      "file_regex": "^[ ]*File "(...*?)", line ([0-9]*)",      "selector": "source.python",      "env": {          "LANG": "en_US.UTF-8" // 如果不指定編碼,會出現print('中文')亂碼      }      // 編碼指定utf-8方法2:      // "env" : {      //     "PYTHONIOENCODING": "utf8"      // }  }

其中 /usr/local/bin/python3 為python的具體路徑,可通過 which python3 獲得。

Anaconda插件

插件簡介

實用的python插件,用多項類似IDE的功能:

  1. Autocompletion 程式碼自動完成
  2. Code Linting 程式碼語法、格式檢查
  3. Goto Definitions 查找顯示變數、函數、類的定義
  4. Find Usages 查找變數、函數、類的實用
  5. ……

插件功能詳見 anaconda文檔

安裝

通過 Package Control 搜索 anaconda 安裝

配置
{      // Python主文件位置      "python_interpreter": "/usr/local/bin/python3",        // 語法格式檢查 <= (僅在保存時檢查,避免coding過程中一直出現警告框)      "anaconda_linting": true,      "anaconda_linting_behaviour": "save-only", // 保存時檢查      "anaconda_gutter_theme": "hard",      "anaconda_linter_show_errors_on_save": false, // 保存時顯示錯誤      "anaconda_linter_phantoms": true, // 介面顯示錯誤        // pep8自動格式化      "auto_formatting": true,      "pep8_ignore": [          "E501",      ],        // 文檔顯示設置      "enable_docstrings_tooltip": true, // 顯示文檔      "enable_signatures_tooltip": true, //在懸浮窗中顯示方法簽名      "display_signatures": true, //顯示方法簽名      "merge_signatures_and_doc": true  }
解決模組名無法正常補全
問題

ST3當檢測到一些單詞(如: class、def、import等)時取消了python包的自動補全。

解決方法

Preferences/Browser Packages 打開 Packages 目錄,新建 Python 目錄,新建 Completion Rules.tmPreferences 文件並輸入以下內容,然後重啟ST3。

<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  <plist version="1.0">  <dict>      <key>scope</key>      <string>source.python</string>      <key>settings</key>      <dict>          <key>cancelCompletion</key>          <string>^(.*b(and|or)$)|(s*(pass|return|and|or|(class|def)s*[a-zA-Z_0-9]+)$)</string>      </dict>  </dict>  </plist>

Unicode編碼問題

問題
UnicodeEncodeError: 'ascii' codec can't encode characters in position 294-302: ordinal not in range(128)
原因

sublime控制台ASCII 編碼無法對 unicode 的中文進行編碼,編譯環境容需要指定編碼。

解決方法

Python3.sublime-build 中指定編碼:

{      "env": {          "LANG": "en_US.UTF-8" # 如果不指定編碼,會出現print('中文')亂碼      }  }  # 或者  {      "env" : {          "PYTHONIOENCODING": "utf8"      }  }