Visual Studio 上開發 Python?你/妳不可不知道的六大功能!
Visual Studio 2013/2015 搭配 Python Tools for Visual Studio 擴充套件讓 Visual Studio 能提供對 Python 程式語言高度整合的開發環境,並完整發揮 Visual Studio 強大的功能,協助您在 Visual Studio 內開發 Python 程式上如虎添翼,提升開發效率!以下將說明六項 Visual Studio 整合開發 Python 程式之優勢功能。
- 整合 Python 直譯器 (Interpreter) & 互動視窗 (Interactive)
- 整合 Python 虛擬開發環境 (Virtual Environment)
- 整合 Python 套件管理員 (Package Manager)
- IntelliSense 對 Python 完整的支援
- 對 Python 使用偵錯模式 (Debugging)
- 跨平台遠端偵錯 (Remote Debugging)
整合 Python直譯器 (Interpreter) & 互動視窗 (Interactive)
Visual Studio 高度整合 Python 直譯器,讓您能夠在開發過程中切換不同版本的Python 直譯器。此項功能除了能夠切換至您所熟悉的 Python 版本進行開發外,更可確保您的程式在不同 Python 版本下運行的函式相容性是合法的,如下圖程式碼當中的 print 函式,在 Python 2.7環境下為合法的 (紅色箭頭指向目前為使用 Python 2.7 全域環境直譯器)。
若您的系統有安裝不同版本的直譯器,將會替您整合至 Visual Studio 當中供您選擇。如您安裝直譯器的路徑非預設路徑或欲自訂直譯器函示庫、直譯器位元時,您亦可自行於 Visual Studio 新增自訂直譯器。
接著我們示範切換至不同版本的 Python 環境,這裡以切換至 Python 3.5 為例。
此時會發現 Visual Studio 自動偵測到非該環境版本所支援的函式,透過下引號提示使用者錯誤的程式碼片段,提供使用者快速尋找出不同版本間不相容之處,以便快速進行修正工作。
並提供於 Visual Studio 內啟動不同版本的互動 (Interactive) 視窗,就像以往在 Python 命令列下做的事情一樣,此互動視窗提供您進行初步撰寫、測試,以及驗證您設計想法的一個簡易執行環境。
整合 Python 虛擬開發環境 (Virtual Environment)
Visual Studio 提供完整的 Python 虛擬環境來為不同專案提供獨立的 Python 執行環境,如此一來可避免多個專案間彼此共用一個全域環境使得有太多與該專案不相關的套件在環境中,增加開發環境的複雜度。或者您能夠在不同環境中安裝不同版本的套件,以便測試在不同的版本中所使用到套件的函式是否有不一樣之處。
如下圖,我們創建多個虛擬環境,用此來安裝不同版本的套件以進行相容性測試,而創建出來的虛擬環境能於稍後提供給其他專案使用,減少安裝及創建環境所花費冗餘的設定時間。
在創建虛擬環境時能夠透過其他虛擬環境或者全域環境內已安裝的套件產生 requirements 檔,此檔案將可在稍後創建新的虛擬環境時作為參考,提供快速設置新的虛擬環境所需的套件清單。
整合 Python 套件管理員 (Package Manager)
在 Python 中有許多有用的第三方套件能夠透過 pip 或者 easy_install 套件管理員安裝,讓您能在程式碼中呼叫這些套件中的函式,協助您更快的達成開發目標。而在 Visual Studio 中高度整合這些套件管理員,讓您不需要輸入繁瑣的指令即可簡單的安裝套件。
如下圖,可於方案總管內在欲安裝套件的 Python 環境下點擊滑鼠右鍵,即可看到安裝 Python 套件的選項。
接著如下圖輸入您要安裝的套件名稱,在這裡您也可以指定版本安裝,或者不指定則安裝最新版本的套件。另外需要注意的是若您使用 easy_install 選項,將不會替您即將安裝的套件整合至方案總管當中,如此一來將無法使用 Visual Studio 完整管理這些透過 easy_install 安裝的套件。
IntelliSense 對 Python 完整的支援
Visual Studio 針對 Python 亦提供以往在 C#、VB、VC++ 等語言上 IntelliSense 的支援,例如:列出物件成員、函式呼叫參數與返回值資訊、快速諮詢和自動完成文字等輔助功能,讓您在撰寫物件或者呼叫函式時能夠更有信心,提高撰寫效率。
下圖展示 IntelliSense 功能協助列出物件中所公開的成員內容。
下圖展示 IntelliSense 功能提供函式呼叫參數資訊。
另外 IntelliSense 提供快速動作,例如鍵入 main 後按下「T,即可幫您自動補完合適的程式碼區段與相關參考。
對 Python 使用偵錯模式 (Debugging)
Visual Studio 針對 Python 支援完整偵錯功能,例如在程式執行時能夠暫止於中斷點處,此時能檢視或修改當下執行情況的區域變數以及呼叫堆疊,並能於偵錯模式下使用您熟悉的重要功能讓您能更簡易快速的掌握程式執行的情況。
另外,Visual Studio 對 Python 支援了混合偵錯模式 (Mixed-Mode debugging),若您的 Python 程式碼中有使用到外部如 C/C++ 等 Native Code 並擁有該 Native Code 的原始碼專案時便能進行混合偵錯模式。而與一般偵錯模式一樣,在 Python 外的語言仍可進入中斷點改變其變數值。
相同的,您也能夠於混合偵錯模式下自由的跳躍至不同程式碼的呼叫堆疊當中進行程式碼及變數的巡覽。
版本控制
Visual Studio 整合版本控制,其支援 Git 與 Visual Studio Team Services 版本控制,透過 Visual Studio 您現在不需要額外工具就能夠直接於 Visual Studio 內對您的 Python 專案直接進行版本提交、復原、比較、檢視程式碼歷史紀錄等版本控制所用到的常用功能。
跨平台遠端偵錯 (Remote Debugging)
Visual Studio 替 Python 程式加入了遠端除錯的能力,透過這個 Python 套件讓您能夠使用 Visual Studio 連接在不同的作業系統上 (如 Linux) 執行的 Python 程式。此項功能使得您在跨平台開發時更能夠獲得一致的開發體驗與提升整體開發效率!
如下圖展示 Python 程式運作在一塊 Linux 嵌入式開發板上,同時在個人電腦內的 Windows 10 運行著 Visual Studio 2015,其透過 ptvsd 套件能讓您遠端附加至序,直接對 Linux 嵌入式開發板上運行的 Python 程式進行如您所熟悉的偵錯模式。並保有完整的偵錯模式功能像是區域變數檢視、呼叫堆疊分析等完整偵錯功能來進行程式的分析與追蹤。
參考資料: