Python 是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学。因而得到了广泛应用和支持。要了解有关 Python 的详细信息,请访问 python.org。
Python 在 ArcGIS 9.0 版本中被引入到 ArcGIS 社区中。此后,Python 被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了 Python 体验,从而提供更多的功能以及更丰富、更友好的 Python 体验。
Esri 已将 Python 完全纳入 ArcGIS 中,并将其视为可满足 Esri 用户社区需求的语言。以下为 Python 的部分优势:
- 简单易学,不仅适用于初学者,也适用于专家
- 具有高度的可扩展性,适用于大型工程或一次性的小型项目(即脚本)
- 便携式、跨平台
- 可嵌入(使 ArcGIS 可脚本化)
- 成熟稳定
- 具有大型用户社区
迁移
要迁移针对 ArcGIS Desktop(或者 ArcGIS Server 或 ArcGIS Engine)版本编写的 Python 代码,请参阅针对 ArcGIS Pro 的 Python 迁移。主要差别在于 ArcGIS Pro 使用 Python 3,而其他 ArcGIS 产品使用 Python 2,同时 ArcPy 本身所含工具中存在一些差别;例如 arcpy.mapping 模块替换为 arcpy.mp 模块。
了解 Python
除了 ArcGIS Pro Python 帮助之外,,由 Paul A. Zandbergen 创作的以下 Esri Press 书籍都非常宝贵,无论您的技术水平或经验如何:
建议您结合相应的 Python 参考书来进一步了解此处包含的 ArcPy 专用信息。对于 Python 初学者,建议使用以下两本书籍:《学习 Python》(Learning Python)(作者:Mark Lutz 和 David Ascher,出版社:O’Reilly & Associates)和《Python 核心编程》(Core Python Programming)(作者:Wesley J. Chun,出版社:Prentice Hall),这两本书都对该语言进行了详尽介绍,并且内容上不重叠。此外还有许多其他书籍也介绍了 Python 及其具体用途,其中有些新书会定期出版,因此可以探究可用的内容。Python 网站上提供了 Python 的完整文档,但内容很简明,主要是面向开发者的。还有一个大型的 Python 在线社区,其中包含很多在线资源,您可通过 Python 主页访问这些资源。
Python 教程
如果您是 Python 的初学者,我们推荐您学习此处列出的一些外部教程。
- Python 教程是 Python 文档本身的一部分。
- Python for Non-Programmer 为编程经验有限的人士提供教程。
- The Python Language Referenc 将介绍 Python 的语法和语义。
针对程序员的 Python 教程
此处所列的外部教程主要面向以前学习过其他编程语言(Perl、Visual Basic、C)的人员。
- Python 教程是 Python 文档本身的一部分。
- Python for Programmers 为具有其他编程语言经验的人士提供教程。
Conda
由于具有多功能性和可扩展性,Python 是 ArcGIS 10.x 和 ArcGIS Pro 中用于自动化的主要语言。部分程度上也正是由于这些优点,Python 正逐渐成为使用最为广泛的通用编程语言之一。Python 具有一套丰富的预先存在软件包生态系统,ArcGIS 可对此加以利用,但是管理在系统上安装哪些软件包却是一项复杂费时的任务,特别是在使用多个工程或者尝试与他人共享代码时尤为如此。
为了利用此多功能性,Python 社区已创建了多种方法在多个 Python 版本中创建工程,并简化了几乎所有公用 Python 软件包的安装过程。Conda 是最常用且应用最广泛的 Python 软件包管理程序。
Conda 的功能已通过 Python 软件包管理器集成到 ArcGIS Pro 中。“Python 软件包管理器”消除了编写 Python 代码时面临的许多障碍。其支持安装与各个工程关联的开源和第三方库,而非基础 Python 安装。这简化了在多台计算机之间成功共享复杂 Python 工具的过程。
运行 Python
可以在 ArcGIS Pro 中使用 Python 窗口或 ArcGIS Notebooks 以交互方式运行 Python。Python 窗口会提供一个提示,可在其中执行 Python 代码的简短片段。ArcGIS Notebooks 基于 Jupyter Notebook 架构,并提供了丰富的体验,可在其中执行代码、可视化效果和倡议文本,并将其一起存储在同一文档中。
Python 脚本(扩展名为 .py 的文件)可以在 ArcGIS Pro 外部运行。以下几个小节介绍了如何在激活正确的 ArcGIS Pro Python 3 conda 环境的情况下从应用程序外部运行 Python 脚本。
从命令提示符
要从命令提示符启动 Python,请键入以下内容:
"%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy"
注:
显示的所有路径假定按计算机(所有用户)安装 ArcGIS Pro。如果已为当前用户安装 ArcGIS Pro,请将 %LOCALAPPDATA% 替换为 %PROGRAMFILES%。
要从命令提示符运行 Python 脚本(可在 .py 文件后添加参数),请键入以下内容:
"C:\Program Files\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py
启动 ArcGIS Pro Python 3 conda 环境:
"%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\proenv"
从批处理文件
要从 .bat 文件运行 Python 脚本,请在 propy 上使用 call:
@echo Run my Python script call "%PROGRAMFILES%\ArcGIS\Pro\bin\Python\Scripts\propy" myscript.py
@echo Finished
作为计划任务
如果作为计划任务运行 Python 脚本,程序或脚本应为 C:\PROGRA~1\ArcGIS\Pro\bin\Python\Scripts\propy,并且参数应包含 Python 脚本的完整路径。
快速链接
以下快捷键可用于访问 Python:
快捷方式 | 说明 |
---|---|
Python 命令提示符 | 打开使用当前 conda 环境初始化的命令提示符窗口。要启动交互式 Python 会话,请键入 python。要运行 Python 脚本,请键入 python,随后输入 .py文件的路径。 |
Python 交互式终端 | 使用当前 conda 环境打开 Python 会话。 |
Python IDE
通过配置集成开发环境 (IDE) 使用的 Python 版本,可以无缝使用大部分现代 Python IDE 和 conda。主要步骤包括引导 IDE 在 ArcGIS Pro 安装期间使用正确的 Python.exe 文件。要配置多个常用 IDE,请参阅使用 IDE 或者特定 IDE 的文档。
键入 idle 可以从 conda 环境启动 Python IDLE。
疑难解答
必须在 conda 环境内运行 ArcPy,以供 ArcGIS Pro 用于管理 Python 安装。可以通过从 ArcGIS > ArcGIS Pro 启动菜单组内的链接启动 Python 或者通过在终端运行 proenv 来访问此环境。
如果在命令窗口中打开 conda 环境但不具备所需管理权限,则将显示一条消息,指示缺少权限。关闭命令窗口,重新将其打开,然后 Run as administrator。
在应用程序外授权 Python
如果在 ArcGIS Pro 应用程序外部运行使用 ArcGIS Pro 功能的 Python 脚本(例如从命令提示符运行 Python IDE,或通过计划任务运行脚本),则必须满足以下条件之一:
- 在登录到 ArcGIS Pro 时,选中自动登录。
- ArcGIS Pro 当前已打开。
- ArcGIS Pro 已授权为离线工作。
注:
如果不满足以上某个条件,则在导入 arcpy 或 arcgisscripting 时,将会出现 RuntimeError: NotInitialized 异常。
了解有关 ArcGIS Pro 许可的详细信息。