利用VSCode編寫ArcPy代碼

利用VSCode編寫ArcPy代碼

本文導讀:python作爲腳本語言,立足於後臺代碼,一直都缺乏IDE編輯器。隨着互聯網技術和大數據的興起,越來越多人重視python語言,甚至在一些專業性很強的應用端上逐步將python語言作爲主要的調用和擴展語言,例如ArcGIS,在10.1以後就完全拋棄了原來的VBA腳本,全面擁抱python。但一直以來python都缺乏比較好的IDE工具,比較專業的例如PyCharm、微軟Visual Studio 等,都屬於收費軟件,並且佔用資源非常大。雖然利用它們結合arcpy去編寫功能代碼可以很方便的擴展ArcGIS功能,但這兩個專業級別的IDE軟件不但是儲存或是運行都佔用大量的軟件資源,用作編寫arcpy代碼確實有點大材小用。經過了多次帥選和實際使用之後,筆者發現使用微軟免費的VSCode軟件可以非常流暢和舒服的解決python代碼編寫問題。下面順便介紹一下如何利用VSCode搭建適合arcpy的編寫環境。 BY 李遠祥

幾個python工具的比較

PyCharm
首先介紹的是PyCharm,是非常專業的python IDE ,基本上囊括了python語言所需的功能,而且擴展性也非常好,也比較適合新手使用,例如代碼提示、補齊、調試等一應俱全。在安裝完成之後可以檢索python環境並創建索引,自動將Python的各種包引入到環境中,在經歷幾分鐘後就可以構建成非常完美的python編輯利器。
2017-11-03-15-15-12

Visual Studio
微軟Visual Studio是鼎鼎大名的IDE工具,適合於絕大部分的程序編寫。在早期版本如2012版本之前不支持python語言,之後版本需要安裝python語言擴展包才能進行python開發,在2015版本開始,VS原生集成python語言開發,在安裝的時候需要選擇安裝。其專業性也非常強大,熟悉VS開發的人員基本上不需要再學習一些軟件操作,可以直接上手編寫python代碼。VS與windows非常緊密,在初始運行時也會自動帶入環境中的python環境,這點與PyCharm優點類似。代碼提示、對其、補全調試等也是一應俱全。
VS安裝python開發工具

python外部包提示

專業型IDE的缺點與優點一樣明顯,首先就是需要付費使用;其次軟件比較龐大,佔用比較多的存儲,同時運行佔用內存也比較大,對於性能不是十分好的機器,代碼編寫的時候會出現卡頓或者提示延時。如果不是做大中型的項目,筆者不建議使用這類型軟件。

python IDEL

純文本編輯器,非常輕巧,格式化腳本語言並且能夠高亮顯示代碼。這個工具幾乎跟windows自帶的文本編輯器沒有任何的區別,完全不佔用資源,沒有任何的腳本提示和錯誤提示,不能調試等,新手一般駕馭不了。

IDEL界面

如果不介意的話,腳本語言也可以用windows自帶的txt編輯器編輯,不過相信沒有人會這樣做。

Notepad++
Notepad++ 是一款比較優秀的文本編輯器,支持插件擴展。對於python腳本語言來說,它的好處也是十分明顯,非常的小巧並且不佔用資源,通過python插件也支持一定的腳本提示。
Notepad++界面

對於一般的使用,Notepad++已經算時足夠的了,就是專業性不強,需要插件支持,並且以文本編輯爲主。筆者在相當長的一段時間內使用Notepad++ ,因爲它非常全面,通過插件方式,幾乎支持目前主流的腳本語言開發。如果是比較簡單的代碼編寫,筆者還是比較推薦使用notepad++

VSCode中的python語言編寫

VSCode是微軟開發的一個比較開放的編輯器,支持插件方式擴展其功能。界面比較友好,符合微軟一貫的作風。其特點比較明顯,介乎於文本編輯和IDE之間,非常小巧,啓動非常迅速,並且適配了多個操作系統。
相信大部分人使用過VSCode之後都會選擇性的將一些編輯器卸載掉,因爲VSCode本身比較優秀,目前已有大量的插件可用,總能找到適合自己的需求。
VSCode的插件商店
VSCode也不是原生支持python語言編寫的,如果要比較友好,最好就是安裝其python插件。通過在商店中檢索python關鍵字,安裝下載量最大的python插件即可。只要文件後綴名爲.py ,VSCode就會調用插件功能對文件進行渲染。
在VSCode中進行python代碼調試
VSCode中也支持代碼提示,對於外部包加載進來,提示會有一定的延時。例如下圖是調用arcpy包中的spatial的watered工具,會提示其函數和參數。筆者測試,如果有外部包引入時,提示的速度大約是2秒左右,跟專業的pycharm和VS沒法比。
VSCode的代碼提示

筆者使用VSCode的最大原因是它比較全面而且免費,並且適配了不同的操作系統。例如需要編寫Javascript的時候只需要查找對應的JavaScript插件就好,需要編寫markdown就直接使用markdown的插件,而且開發者非常多,可玩性比較強。筆者是最早從markdown的編寫轉到VSCode中,並逐步使用VSCod去編寫一些腳本語言。

VSCode中配置arcpy環境

ArcGIS在安裝的時候會自動安裝python環境,但這個python環境是經過改造的,將自身需要用到的一些包打包到python環境中。其安裝路徑一般爲 C:\Python27\ 後面就是arcgis的版本號,例如10.5,就是 C:\Python27\ArcGIS10.5 。python環境分爲32位和64位,ArcGIS桌面用到的python環境是32位,目錄爲C:\Python27\ArcGIS10.5 ;ArcGIS Server中用到的是64位的環境,路徑爲C:\Python27\ArcGISx6410.5 。如果編寫的是桌面的代碼,筆者建議還是綁定32位的python環境,儘管就算沒有綁定,ArcGIS都會根據運行的需要自動適應到對應的環境中。

如果要打造一個免費的arcpy開發環境,先安裝VSCode。可以在微軟的官網下載最新的版本,地址爲 https://code.visualstudio.com/Download 。從下載頁面可以看到VSCode確實是良心之作,除了微軟自身的windows之外,還適配了Linux 和 Mac 系統。
VSCode下載頁面

安裝過程非常簡單,例如windows版本,直接運行安裝程序按照嚮導完成。
完成後便可以直接運行VSCode軟件。對於新手來說,VSCode還不能直接上手使用,因爲不同的需求需要安裝不一樣的插件。但微軟的官方網站會給出一些非常常用的插件建議,例如點擊其下載面的extensions,跳轉到對應的推薦的擴展插件。
擴展插件
可以在這個頁面中根據需要選擇一款插件點擊進行安裝。畢竟在還沒熟悉之前,隨大流還是非常大作用,這些插件都是經過大浪淘沙,裝機量非常大的插件。

在該頁面點擊python安裝,或者在軟件的左側側邊欄中點擊商店,輸入python關鍵字進行檢索,選擇下載量最多的那個名爲python的插件。
python插件下載

接下來纔是配置ArcPy。雖然安裝了python插件之後會將python語言編寫的一些規則、提示、內置的類和函數固化好,但外部的包如arcpy之類的是不會註冊到其中。所以,必須在軟件中進行指定。這一點不像VS和pyCharm那樣在首次啓動的時候會對系統環境進行檢索,並自動註冊這些在環境中檢查到的外部包。

在文件菜單,選擇設置,進入到VSCode的軟件設置中,如下圖
進入VSCode的設置界面

在【用戶設置】中輸入python關鍵字,則會跳轉到python的設置,其中python.pythonPath就是註冊python所在的位置。默認值爲python。如果需要指定,則點擊該段文字的左側,點擊【複製到設置】,就會在用戶設置中自動增加了一條設置記錄,如下圖所示
VSCode python環境設置

修改爲 “python.pythonPath”: “C:\Python27\ArcGIS10.5” ,路徑必須使用雙斜線。修改完成後按ctr+s 保存設置便可生效。

這樣經過簡單幾步設置之後,就將arcpy的編輯環境搭建完成,而且使用非常友好。

問題和總結

如果只是結合arcpy來編寫處理腳本,那麼使用VSCode編寫和調試十分方便,因爲它不需要調出ArcMap界面,所以直接能夠在後臺中進行調試。但如果是利用 addin_assistant 工具來開發ArcMap插件,涉及到界面方面,那就沒辦法調試了,只能是將大部分代碼作爲後臺處理腳本先進行測試,沒問題之後在拷貝到插件工程中修改,並最終生成編譯成插件。

總體來說,利用VSCode來編寫arcpy處理代碼,還是非常好用的。試想一下,一個具備python語言提示、代碼高亮、自動縮進、可調式、並且支持外部python包提示的免費工具,可以讓代碼編寫事半功倍。

更多的GIS主流和非主流技術,可以持續關注CSDN的GIS製圖樂園,以及微信公衆號【GIS製圖樂園】。BY 李遠祥

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