利用VSCode编写ArcPy代码

Posted 李远祥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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编辑利器。

Visual Studio
微软Visual Studio是鼎鼎大名的IDE工具,适合于绝大部分的程序编写。在早期版本如2012版本之前不支持python语言,之后版本需要安装python语言扩展包才能进行python开发,在2015版本开始,VS原生集成python语言开发,在安装的时候需要选择安装。其专业性也非常强大,熟悉VS开发的人员基本上不需要再学习一些软件操作,可以直接上手编写python代码。VS与windows非常紧密,在初始运行时也会自动带入环境中的python环境,这点与PyCharm优点类似。代码提示、对其、补全调试等也是一应俱全。

专业型IDE的缺点与优点一样明显,首先就是需要付费使用;其次软件比较庞大,占用比较多的存储,同时运行占用内存也比较大,对于性能不是十分好的机器,代码编写的时候会出现卡顿或者提示延时。如果不是做大中型的项目,笔者不建议使用这类型软件。

python IDEL

纯文本编辑器,非常轻巧,格式化脚本语言并且能够高亮显示代码。这个工具几乎跟windows自带的文本编辑器没有任何的区别,完全不占用资源,没有任何的脚本提示和错误提示,不能调试等,新手一般驾驭不了。

如果不介意的话,脚本语言也可以用windows自带的txt编辑器编辑,不过相信没有人会这样做。

Notepad++
Notepad++ 是一款比较优秀的文本编辑器,支持插件扩展。对于python脚本语言来说,它的好处也是十分明显,非常的小巧并且不占用资源,通过python插件也支持一定的脚本提示。

对于一般的使用,Notepad++已经算时足够的了,就是专业性不强,需要插件支持,并且以文本编辑为主。笔者在相当长的一段时间内使用Notepad++ ,因为它非常全面,通过插件方式,几乎支持目前主流的脚本语言开发。如果是比较简单的代码编写,笔者还是比较推荐使用notepad++

VSCode中的python语言编写

VSCode是微软开发的一个比较开放的编辑器,支持插件方式扩展其功能。界面比较友好,符合微软一贯的作风。其特点比较明显,介乎于文本编辑和IDE之间,非常小巧,启动非常迅速,并且适配了多个操作系统。
相信大部分人使用过VSCode之后都会选择性的将一些编辑器卸载掉,因为VSCode本身比较优秀,目前已有大量的插件可用,总能找到适合自己的需求。

VSCode也不是原生支持python语言编写的,如果要比较友好,最好就是安装其python插件。通过在商店中检索python关键字,安装下载量最大的python插件即可。只要文件后缀名为.py ,VSCode就会调用插件功能对文件进行渲染。

VSCode中也支持代码提示,对于外部包加载进来,提示会有一定的延时。例如下图是调用arcpy包中的spatial的watered工具,会提示其函数和参数。笔者测试,如果有外部包引入时,提示的速度大约是2秒左右,跟专业的pycharm和VS没法比。

笔者使用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 系统。

安装过程非常简单,例如windows版本,直接运行安装程序按照向导完成。
完成后便可以直接运行VSCode软件。对于新手来说,VSCode还不能直接上手使用,因为不同的需求需要安装不一样的插件。但微软的官方网站会给出一些非常常用的插件建议,例如点击其下载面的extensions,跳转到对应的推荐的扩展插件。

可以在这个页面中根据需要选择一款插件点击进行安装。毕竟在还没熟悉之前,随大流还是非常大作用,这些插件都是经过大浪淘沙,装机量非常大的插件。

在该页面点击python安装,或者在软件的左侧侧边栏中点击商店,输入python关键字进行检索,选择下载量最多的那个名为python的插件。

接下来才是配置ArcPy。虽然安装了python插件之后会将python语言编写的一些规则、提示、内置的类和函数固化好,但外部的包如arcpy之类的是不会注册到其中。所以,必须在软件中进行指定。这一点不像VS和pyCharm那样在首次启动的时候会对系统环境进行检索,并自动注册这些在环境中检查到的外部包。

在文件菜单,选择设置,进入到VSCode的软件设置中,如下图

在【用户设置】中输入python关键字,则会跳转到python的设置,其中python.pythonPath就是注册python所在的位置。默认值为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 李远祥

以上是关于利用VSCode编写ArcPy代码的主要内容,如果未能解决你的问题,请参考以下文章

巧用Vscode编辑器,快速格式化代码,让你的代码变得整洁又美观

巧用Vscode编辑器,快速格式化代码,让你的代码变得整洁又美观

巧用Vscode编辑器,快速格式化代码,让你的代码变得整洁又美观

如何利用arcpy批量输出mxd

arcpy.mapping实战-专题图制图自动化

ArcGIS 应用Python中arcpy模块