python代码编辑器在哪里,python自带编程工具

本篇文章给大家谈谈python代码运行助手怎么打开,以及python代码编辑器在哪里,希望对各位有所帮助,不要忘了收藏本站喔。

4.1 介绍

python 工具箱中包含多个工具。在用户角度来讲,Python 工具箱中的工具就像是常规地理工具一样,脚本工具中许多优点同样适用于python工具箱中的工具PythonTurtle画扇形。从开发角度来讲,python工具箱是用python编写的,这个章节描述了创建工具的步骤以及如何定义参数。

4.2 创建和编辑 Python 工具箱

python工具箱是一个.pyt文件拓展,arcgis pro自动将.pyt文件识别为python 工具箱。python工具箱直接在目录中右击新建python Toolbox即可。同时新建的python工具箱中会新建一个默认为tool的工具,这个工具没有任何参数,是一个空的工具。
在这里插入图片描述

创建新的python工具箱时,arcgis pro直接从头创建一个基本模板。单个脚本工具在编辑时,修改的是每个脚本工具的脚本文件。python 工具箱的所有的工具的代码都在一个单独的.pyt文件中。.pyt没有设置默认的编辑器,一般使用默认的.py文件的打开编辑器,如果要修改arcgis pro中的脚本编辑器,和前面一样,也是要在地理处理选项卡下修改脚本编辑器的路径:C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\Scripts\idle.exe.在这里要认识到,代码其实存储在.pyt文件,不是常规的.py文件中。但是IDLE将.pyt文件默认是识别为python代码,但是spyder和pycharm并不是,使用其他的编辑器会无法对.pyt脚本高亮显示等。所以需要进行一些设置
在这里插入图片描述

---------------------------------------------------------------------------------------------------------------------------------------

在pycharm中将.pyt文件与python文件关联

在pycharm的Register New File Types Association对话框中,file pattern为*.pyt,选择的类型为python。之后.pyt文件就会被默认识别为python代码。
在这里插入图片描述
并且在pycharm中还可以通过单击file-settings-editor-file typrs查看和修改关联的文件类型。
在这里插入图片描述
但是不论是使用哪种IDE,都只能通过arcgis pro中工具箱中的工具测试代码,无法直接使用python编辑器。

----------------------------------------------------------------------------------------------------------------------------------------------

关于python工具箱模板代码,包含了一个名为Toolbox的类,这个类定义了工具箱的特性,部分代码如下所示:

class Toolbox(object):
    def __init__(self):
       """Define the toolbox (the name of the toolbox is the name of the .pyt file)."""
      self.label = "Toolbox"
       self.alias = ""
       # List of tool classes associated with this toolbox
       self.tools = [Tool]

要注意的是,这个python类不能修改名称,否则就会无法被识别。python工具箱的名称就是.pyt的名称。

Toolbox类包含了一个名为 __init__的方法,这个方法取消python 工具箱的属性,这个属性包括标签和别名。一个别名只能由字母和数字组成,不能有空格和其他字符。原书作者仍选用了第三章的random sample工具进行了说明。在通常情况下,并不会为了同一工具即开发脚本工具又开发工具箱,这里仍选用random sample是为了更好的进行说明。

class Toolbox(object):
    def __init__(self):
        self.label = "Random Sampling Tools"
        self.alias = "randomsampling"

修改.pyt文件后,可以在arcgis pro中打开工具箱属性,查看是否发生了变化。
在这里插入图片描述
并在在arcgis pro中是无法修改这些属性的,只能在.Pyt文件中进行修改。并且修改后往往需要刷新一下catalog才能查看结果。如果输入的代码违背了属性的要求,往往也会成功,但是在工具箱的属性中会有提示。

在这里插入图片描述
工具箱的下一个属性很重要:
在这里插入图片描述
self.tools属性由一个列表组成,列表包含在当前工具箱中的所有的工具,当前的模板只是包含一个工具,因此被称为Tool,每个工具在.pyt文件中都被组成了一个类,第一部分如下所示:
在这里插入图片描述
类名必须和Toolbox类的self.tools属性中使用的工具的名称对应。这些类的命名遵循Python类常规的命名要求,没有空格。这个工具类包含了一个命名为__init__()的方法,这个方法定义了工具的属性。这些属性包含self.label和self.deion。工具的名称由类本身的名称确定,这个标签是在arcgis pro中显示为工具的显示名称,而工具的名称是允许从另一个脚本或工具调用该工具的名称。

__init__方法有几个其他的属性,self.canRunInBackground属性是一个布尔属性,用于指定arcgis desktop 10.x中工具的后台处理,在arcgis pro中无效。self.category属性将工具组织到python工具箱内的工具集成称为可能,self.stylesheet属性允许更改样式表,在设置工具属性时,往往只对那些需要修改赋值的进行修改,其他的可以选用默认。

对于random sample工具,代码如下:
在这里插入图片描述

class Toolbox(object):
    def __init__(self):
        self.label = "Random Sampling Tools"
        self.alias = "randomsampling"
        self.tools = [RandomSample]
class RandomSample(object):
    def __init__(self):
        self.label = "Random Sample"

当然,如果代码里面有错误(多空格或多括号等),就有可能会在工具箱中不显示如下工具:
在这里插入图片描述
这个工具的类不仅仅不含__init__()方法,还有其他方法,需要对他们有一个简单了解即可,如果有用的到的,在原书后面有了介绍。
getParameterInfo()——可选。定义工具参数,类似于脚本工具的参数面板。
isLicensed()——可选。允许您设置工具是否被许可执行。
updateParameters()——可选。用于工具参数的内部验证。
updateMessages()——可选。用于通过验证工具参数创建的消息。
execute() 必需。是执行实际任务的工具的源代码,如脚本工具中的脚本文件。

在 Python 工具箱中创建一个函数式工具需要以下三种方法: (1) __init__(),去定义工具的属性; (2) getParameterInfo(),对工具参数进行定义; (3) execute(),执行工具的实际任务。从技术上讲,工具可以不使用getParameterInfo()方法运行(即可选),但不使用该方法意味着工具对话框没有参数,意义不大。 下一节将详细介绍如何设置 getParameterInfo() 和 execute() 方法 其他功能提供附加功能,但不是工具工作所必需的。

示例到目前为止仅使用一种工具。一个 Python 工具箱可以包含多个工具。要创建多个工具,需要为 self.tools 属性分配一个工具列表,并为每个工具重复 Tool 类。基本结构如下:

class Toolbox(object):
    def __init__(self):
        self.label = "My Cool Tools"
        self.alias = "mycooltools"
        self.tools = [CoolTool1, CoolTool2]
class CoolTool1(object):
    def __init__(self):
        self.label = "Cool Tool 1"
    def getParameterInfo(self)
# Parameter definition
    def execute(self, parameters, messages):
# Source code
class CoolTool2(object):
    def __init__(self):
        self.label = "Cool Tool 2"
    def getParameterInfo(self)
# Parameter definition
        def execute(self, parameters, messages):
# Source code

这个结构说明了与脚本工具的另一个关键区别。在 Python 工具箱中,所有工具的代码都位于同一个 .pyt文件中,而在具有多个脚本工具的自定义工具箱中,每个脚本工具都与自己的 Python 脚本文件相关联。

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值