[轉]基於Sublime Text搭建Python IDE
一、先按照下面的帖子安裝安裝Package Control
Package Control 安裝方法
1.通過快捷鍵 ctrl+` 或者 View > Show Console 開啟控制檯,然後貼上相應的 Python 安裝程式碼;
2.Sublime Text 3 安裝程式碼並回車:
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf),'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
3.重啟Sublime Text 3;
4.如果在Perferences->package settings中看到package control這一項,則安裝成功。
用Package Control安裝外掛的方法:
1. 按下Ctrl+Shift+P調出命令皮膚
2. 輸入install 調出 Install Package 選項並回車,然後在列表中選中要安裝的外掛。
http://zh.lucida.me/blog/sublime-text-complete-guide/
二、再參照下面的帖子安裝python開發的主要外掛SublimeREPL
:用於python除錯(配置參照下面的帖子)
· 1. 問題
· 2. 安裝的外掛
· 3. 優化
1. 問題
最近在使用Sublime Text 2寫Python程式碼的時候,發現了兩個小問題:
· 程式碼中如果使用了input等函式進行互動的時候,直接使用Ctrl+B進行編譯時,執行資訊欄內無法輸入互動資訊,程式會提示報錯。
· 在Win 8.1下面,使用Ctrl+B進行編譯時,執行資訊欄內不顯示編譯資訊,一片空白(這個不知道是否屬於個例、設定錯誤還是bug之類的)
2. 安裝的外掛
SublimeREPL
針對上面的兩個問題,我找到了SublimeREPL外掛,可以用於執行和除錯一些需要互動的程式,同時在Win 7和Win 8.1下面都能正常工作。
比較棒的是這個外掛可以支援多種語言,而對於Python也支援多種執行模式,我比較常用到的是Python和Python - RUN current file 。
3. 優化
SublimeREPL新增快捷鍵
SublimeREPL安裝之後沒有快捷鍵,每次執行程式必須用滑鼠去點工具欄,有些不爽,所以需要給SublimeREPL新增快捷鍵。
這裡可以看到所有Python方法的名稱及id,根據此可以自定義使用者快捷鍵,在偏好--鍵繫結–使用者中輸入:
[
{
"keys": [
"f5"
],
"caption": "SublimeREPL: Python - RUN current file",
"command": "run_existing_window_command",
"args": {
"id": "repl_python_run",
"file": "config/Python/Main.sublime-menu"
}
},
{
"keys": [
"ctrl+f5"
],
"caption": "SublimeREPL: Python - PDB current file",
"command": "run_existing_window_command",
"args":
{
"id": "repl_python_pdb",
"file": "config/Python/Main.sublime-menu"
}
},
{"keys":["ctrl+alt+f5"],
"caption": "SublimeREPL: Python",
"command": "run_existing_window_command",
"args":
{
"id": "repl_python",
"file": "config/Python/Main.sublime-menu"
}}
]
本文僅定義了Python - RUN current file的快捷鍵,我在這裡使用的是F5,可以根據自己的需要進行靈活的調整。
關於設定快捷鍵的詳細資料如下:
設定快捷鍵
但是每次都要去選擇tools->sublimeREPL->python->python run current file這麼一長串肯定是很讓人頭疼的,就想著能不能設定快捷鍵來執行。因為以前使用IDLE寫python,所以就打算配成F5執行。
我們知道,Sublime Text是通過json檔案進行設定的。我們開啟preferences->Key Binding-Default就能看到原來的快捷鍵的設定,是json格式的。
開啟preferences->Key Binding-User,按照上面的格式重寫需要設定的快捷鍵的的相關屬性,就能覆蓋預設設定。
但是設定的格式不容易看懂,可以參考非官方文件
發現可以把”command”設為”run_macro_file” ,”args”設為錄製的巨集的檔名,就可以快捷地呼叫這個巨集。但是這個嘗試失敗了,可能是因為
Note that the macro buffer will remember only the latest recorded macro. Also, macros only record commands sent to the buffer: window-level commands, such creating a new file, will be ignored.
巨集不能建立新視窗之類的。
後來折騰了好久,在網上找到相關的內容,研究出瞭解決方案
1.
開啟C:\Users\xxx(your name)\AppData\Roaming\Sublime Text 3\Packages\SublimeREPL\config\Python,根據自己的情況調整具體路徑。AppData可能是隱藏資料夾,要先設定隱藏資料夾可見才找得到。開啟Main.sublime-menu,看到裡面也是json格式的。觀察一下就發現這對應的剛好就是tools->sublimeREPL->python->下的幾個選項。caption對應的就是顯示的名字。
開啟剛剛提到的preferences->Key Binding-User,寫入以下內容
可以看出就是呼叫了id是repl_python_run的現有的視窗命令。repl_python_run是和前面Main.sublime-menu裡的內容相對應,就是tools->sublimeREPL->python->python run current file的id
這樣,就完成了Sublime Text3類似IDLE按F5鍵在可互動環境下執行python檔案的配置
程式碼區和編譯區分隔顯示
選擇檢視--佈局--行:2,將Sublime分割為上下兩部分,選擇F5進行程式碼編譯,編譯資訊將會顯示在下面的編譯區域。
轉載請註明:自由的風 » 基於Sublime Text搭建Python IDE
三 SublimeCodeIntel :用於python自動提示
如果安裝了Anaconda,此外掛可以關閉
SublimeCodeIntel user配置
{
"codeintel_language_settings":
{
"Python": {
"python":"D:/Python27/python.exe",
"pythonExtraPaths":
[
"D:/Python27",
"D:/Python27/DLLs",
"D:/Python27/Lib",
"D:/Python27/Lib/lib-tk",
"D:/Python27/Lib/site-packages"
]
}
}
}
如何用sublimelinter和sublimecodeintel外掛對numpy進行語法檢查和程式碼提示?可以參照http://www.zhihu.com/question/28833130
四 、anaconda 用於格式化及格式檢查,文件說明
Anaconda
Anaconda 是一個終極 Python 外掛。它為 ST3 增添了多項 IDE 類似的功能,例如:
· Autocompletion 自動完成,該選項預設開啟,同時提供多種配置選項。
· Code linting 使用支援 pep8 標準的 PyLint 或者 PyFlakes。因為我個人使用的是另外的 linting 工具,所以我會在 Anaconda 的配置檔案 Anaconda.sublime-settings 中將 linting 完全禁用。操作如下: Sublime > Preferences > Package Settings > Anaconda > Settings – User: {"anaconda_linting": false}
· McCabe code complexity checker 讓你可以在特定的檔案中使用 McCabe complexity checker. 如果你對軟體複雜度檢查工具不太熟悉的話,請務必先瀏覽上邊的連結。
· Goto Definitions 能夠在你的整個工程中查詢並且顯示任意一個變數,函式,或者類的定義。
· Find Usage 能夠快速的查詢某個變數,函式或者類在某個特定檔案中的什麼地方被使用了。
· Show Documentation: 能夠顯示一個函式或者類的說明性字串(當然,是在定義了字串的情況下)
你可以在這裡,或者通過 ST3 的 Package Settings: Sublime Text > Preferences > Package Settings > Anaconda > README 來檢視所有這些特性。
http://python.jobbole.com/81312/
按照 SublimeREPL中快捷鍵的配置,sublime設定快捷鍵F5為執行,Ctrl+F5除錯
然後就出現如下的pdb除錯介面。
然後你就可以輸出各種pdb命令進行除錯了。比如:
(Pdb) b 31 #在31行建立斷點
Breakpoint 1 at c:\work\code\workspace\test\sqlalchemy\docopt.py:31
(Pdb) r #執行到斷點處
> c:\work\code\workspace\test\sqlalchemy\docopt.py(31)<module>()
-> m=MyClass()
(Pdb) #在這個命令列下就可以執行當前上下文的python
具體命令用pdb除錯有多種方式可選:
1. 命令列啟動目標程式,加上-m引數,這樣呼叫myscript.py的話斷點就是程式的執行第一行之前
python -m pdb myscript.py
2. 在Python互動環境中啟用除錯
>>> import pdb
>>> import mymodule
>>> pdb.run(‘mymodule.test()’)
3. 比較常用的,就是在程式中間插入一段程式,相對於在一般IDE裡面打上斷點然後啟動debug,不過這種方式是hardcode的
if __name__ == "__main__":
a = 1
import pdb
pdb.set_trace()
b = 2
c = a + b
print (c)
然後正常執行指令碼,到了pdb.set_trace()那就會定下來,就可以看到除錯的提示符(Pdb)了
常用的除錯命令
h(elp),會列印當前版本Pdb可用的命令,如果要查詢某個命令,可以輸入 h [command],例如:“h l” — 檢視list命令
l(ist),可以列出當前將要執行的程式碼塊
(Pdb) l
497 pdb.set_trace()
498 base_data = {}
499 new_data = {}
500 try:
501 execfile(base_file_name,{},base_data)
502 -> execfile(new_file_name,{},new_data)
503 except:
504 logger.writeLog(“error! load result log error!”)
505 print “load cmp logs error!”
506 raise Exception, “load cmp logs error!”
507
b(reak), 設定斷點,例如 “b 77″,就是在當前指令碼的77行打上斷點,還能輸入函式名作為引數,斷點就打到具體的函式入口,如果只敲b,會顯示現有的全部斷點
(Pdb) b 504
Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504
condition bpnumber [condition],設定條件斷點,下面語句就是對第4個斷點加上條件“a==3”
(Pdb) condition 4 a==3
(Pdb) b
Num Type Disp Enb Where
4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504
stop only if a==3
cl(ear),如果後面帶有引數,就是清除指定的斷點(我在Python2.4上從來沒成功過!!!);如果不帶引數就是清除所有的斷點
(Pdb) cl
Clear all breaks? y
disable/enable,禁用/啟用斷點
(Pdb) disable 3
(Pdb) b
Num Type Disp Enb Where
3 breakpoint keep no at /home/jchen/regression/regressionLogCMP.py:505
n(ext),讓程式執行下一行,如果當前語句有一個函式呼叫,用n是不會進入被呼叫的函式體中的
s(tep),跟n相似,但是如果當前有一個函式呼叫,那麼s會進入被呼叫的函式體中
c(ont(inue)),讓程式正常執行,直到遇到斷點
j(ump),讓程式跳轉到指定的行數
(Pdb) j 497
> /home/jchen/regression/regressionLogCMP.py(497)compareLog()
-> pdb.set_trace()
a(rgs),列印當前函式的引數
(Pdb) a
_logger =
_base = ./base/MRM-8137.log
_new = ./new/MRM-8137.log
_caseid = 5550001
_toStepNum = 10
_cmpMap = {‘_bcmpbinarylog’: ‘True’, ‘_bcmpLog’: ‘True’, ‘_bcmpresp’: ‘True’}
p,最有用的命令之一,列印某個變數
(Pdb) p _new
u’./new/MRM-8137.log’
!,感嘆號後面跟著語句,可以直接改變某個變數
q(uit),退出除錯
發現在命令列下除錯程式也是一件挺有意思的事情,記錄下來分享一下
w ,Print a stack trace, with the most recent frame at the bottom.An arrow indicates the "current frame", which determines the context of most commands. 'bt' is an alias for this command.
d ,Move the current frame one level down in the stack trace
(to a newer frame).
u ,Move the current frame one level up in the stack trace
(to an older frame).
使用 u 和 d 命令,我們可以在棧幀之間切換,用以獲取其相關上下文變數資訊。w可以顯示最近的一些棧幀資訊。
/////////////////////////////////
http://my.oschina.net/lionets/blog/269174
如何去除Anocanda語法錯誤檢查提示框:
1)修改
/*
If 'outline' (default) anaconda will outline error lines
If 'fill' anaconda will fill the lines
If 'none' anaconda will not draw anything on error lines
*/
"anaconda_linter_mark_style": "none",
2)修改
// Set this to false to turn pep8 checking off completely
"pep8": false,
相關文章
- 使用sublime text3搭建Python編輯環境Python
- 在windows環境下基於sublime text3的node.js開發環境搭建WindowsNode.js開發環境
- Mac 使用Sublime Text 3 搭建C開發環境Mac開發環境
- Sublime Text全程指南
- sublime text for Mac註冊啟用 sublime text4註冊碼Mac
- sublime text 註冊碼漢化下載+sublime text 破解安裝教程
- Sublime Text 4.0 Mac版Mac
- Sublime Text 簡明教程
- 設定 Sublime Text 的 Python 開發環境Python開發環境
- Sublime Text 4 Dev中文破解版+Sublime Text 4 Dev啟用碼dev
- Markdown | win10系統MarkEditor轉Sublime Text 3Win10
- Sublime Text2配置執行Python程式碼功能Python
- 把sublime text打造成python互動終端Python
- Sublime Text安裝步驟
- Sublime Text 學習資料
- sublime text破解漢化版+sublime text註冊碼金鑰「支援最新mac14」Mac
- [sublime系列文章] sublime text 3如何設定巨集
- sublime text 註冊碼啟用資源+sublime text 破解安裝教程圖文版
- Sublime Text 支援 SCSS 語法高亮CSS
- Sublime text找不到.so檔案
- 我的 Sublime text 外掛配置
- 我使用的 Sublime Text 外掛
- Sublime Text 3 快捷鍵總結
- windows版 Sublime Text 2 快捷鍵Windows
- YUI Compressor for Sublime text2UI
- Sublime Text 4 啟用教程(Mac)Mac
- MacOS Sublime Text 3 安裝使用 Sublime-phpcs 外掛MacPHP
- 使用sublime搭建python開發環境Python開發環境
- sublime text最新註冊碼 「sublime text中文破解版下載」相容最新macos14Mac
- sublime text3 好用的外掛
- sublime Text3 前端常用外掛前端
- sublime text3外掛安裝
- CudaText:Sublime Text 的替代開源版本
- sublime text 4 mac功能及安裝Mac
- sublime text前端程式碼開發神器前端
- 程式碼編輯器:sublime text for MacMac
- sublime text 3 自制快速程式碼片段
- Sublime Text3—常用外掛Emmet