,欢迎也在微信公众号查看。
The ArcGIS API for Python is both a Python package and an API。
Anaconda是一个免费的开源软件包,它将Python安装包和一系列Python包与用户界面捆绑在一起,允许用户管理Python环境和包。
Anaconda还包括conda,这是一个包管理和环境管理系统。Conda也是一个后端程序,它利用并允许其他程序(如Anaconda和Pro)管理多个环境。此外,conda允许您在每个环境中管理包,确保您拥有最新的包,并跟踪包的相互依赖性。例如,如果arcpy需要特定版本的numpy, conda将确保您不会更新numpy超过该版本。因此,conda是Anaconda的核心,驱动着Anaconda的大部分功能。
在conda和Anancoda之间还有一种称为Miniconda的捆绑。Miniconda包括conda和Python的基础安装,而Anaconda包括conda、基础安装、额外的150个模块和一个用户界面。Miniconda是与ArcGIS Pro一起安装的,尽管用户永远不会直接与Miniconda交互,因为它运行在ArcGIS Pro的后台。
管理Python环境
简单地说,“Python环境”是计算机上的一个文件夹,其中包含运行Python所需的所有文件和任何包。如果安装ArcMap,默认情况下Python 2.7环境会创建在C:\Python27\ArcGISXX文件夹中。这是ArcMap和ArcMap版本arcpy中唯一可以使用的环境。当安装ArcGIS Pro时,会安装Miniconda,将在C:\Program Files\ArcGIS\Pro\bin\Python\envs文件夹中创建一个名为arcgispro-py3的默认Python环境,但可以拥有多个不同的环境。可以切换ArcGIS Pro使用的环境。这允许计算机有不同的包组合,这在处理冲突的包相互依赖时很有用(例如,两个不同的包可能使用第三个包的不同版本)。在使用ArcMap和ArcGISPro时特别有用。即使您没有手动安装两个版本的Python,也已经有了两个不同的Python环境。
如何确保与您一起工作的脚本或IDE知道使用哪个版本的Python ?
在conda之前,在不同的Python环境之间切换非常具有挑战性。要在不同的Python环境之间切换您需要将每个脚本分别指向正确的环境,或者更改环境变量(PATH或PYTHONPATH),告诉计算机到哪里查找Python .exe文件。每次更改环境时都需要这样做。也就是说,它要求用户在修改路径变量时知道自己在做什么。
-
影响所有Python程序
-
可能导致软件问题,特别是当您有多个使用Python的程序和多个安装Python
-
要求用户知道他们所处的环境以及他们所在的位置
-
意味着包的安装取决于用户
-
没有自动或管理的包更新;这可能破坏包的相互依赖性
Conda解决了所有这些问题:
-
用户不必更改系统环境。
-
不同的程序可以使用不同的Python环境。
-
由于用户不再更改Python路径,软件受到影响的可能性降低了。
-
ArcGIS Pro和Anaconda有管理环境和包的直观界面。
-
Conda跟踪和更新包版本,防止用户安装相互依赖的包的冲突版本。
-
要访问conda功能,您可以使用Anaconda、ArcGIS Pro或命令提示符
Anacoda
在Anaconda中,该接口允许您创建、克隆、导入和切换环境。此外,您可以安装、卸载和更新包。需要注意的一点是,如果您想在Anaconda中安装Python ArcGIS API包,您需要将Esri通道添加到Anaconda中。Conda可以访问arcgis安装和任何软件包更新。
ArcGIS Pro
在ArcGIS Pro中,您可以进入设置-> Python,管理包和环境。在这里,您可以看到我有两个环境:arcgispro-py3和arcgispro-py3-clone1。使用ArcGIS Pro,默认添加Esri通道。然而,目前在ArcGIS Pro中还没有添加其他通道的方法。
Command Prompt
可以在命令提示符中访问conda。CommandPrompt中使用conda是最简单的方法,它是与ArcGISPro一起安装的。Python命令提示符也与常规命令提示符相同,但已经设置了默认环境和目录。在命令提示符中,conda命令允许您执行与Anaconda或ArcGIS Pro用户界面相同的管理,但需要知道这些命令是什么。要了解更多关于conda命令的信息,请查看conda备忘单。
为了更深入地了解Python命令提示符,命令分为四个部分:
-
环境。这是python.exe的文件夹位置,位于括号中的行首。
-
目录。这是搜索输入文件和保存输出的文件夹位置。
-
工具集。这是用于运行命令的包。
-
命令或者你要求包做的事情。该命令还可以包含参数。
在截图中看到,我们使用了默认的ArcGIS Pro环境,但也使用了相同的文件夹作为目录。这是不必要的,您可以更改目录以将文件保存在不同的位置。
那么,什么时候我应该使用Anaconda,什么时候我应该使用ArcGIS Pro?
这取决于你想做什么。Esri通常推荐使用ArcGIS Pro。伴随ArcGIS Pro安装的Miniconda比独立的Anaconda安装要小得多。从ArcGIS Pro 2.2开始,arcpy和arcgis包都会自动安装。在ArcGIS Pro 2.2之前,必须安装Python API arcgis包。arcpy包只能通过ArcGIS安装使用。
不建议在一台机器上同时安装Anaconda和ArcGIS Pro,因为这将导致路径问题,类似于在没有conda的情况下安装多个Python。
Conda and the ArcGIS API for Python
既然我们已经深入研究了conda,那么它与ArcGIS API for Python有什么关系呢?
ArcGIS API for Python不需要Conda。然而,使用conda使管理arcgis包更容易,特别是当arcgis包一年更新几次并且对其他Python包有多个依赖时。此外,如果你在ArcGIS Pro中使用ArcGIS API forPython,你可以使用conda来管理所有的包,包括ArcGIS包。
IDEs
let’s talk “Integrated Development Environments” or “IDEs”.What are IDEs?
基本上,IDEs是允许您编写和运行脚本的程序。它们对于调试非常有用,并且通常包含一个自动完成函数,使编写脚本更容易。
The ArcGIS API for Python can run in any Python 3.5 IDE.如果您使用多个环境,我们建议使用支持切换环境的IDE,如Spyder或PyCharm。
即便如此,在使用ArcGIS API for Python时,推荐使用Jupyter Notebook。Jupyter Notebook允许您交互式地运行Python代码,可视化输出(如地图、图表和表格),并轻松地共享脚本。当你安装ArcGIS Pro或Anaconda,Jupyter Notebook也将一起安装。