4
ArcGIS Python工具-将自定义脚本导入ToolValidator类
我已经发布了一个问题,上周有关自定义ToolValidator类,并得到了一些很好的答案。在使用建议的解决方案时,我创建了一个自定义模块,该模块在db上执行查询,并且将由ToolValidator类(为下拉列表提供值)以及稍后在地理处理脚本(以获取其他信息)中调用参数(基于下拉列表中选择的项目)。但是,我似乎无法实际调用ToolValidator类中的自定义模块。我一直在尝试追加到没有运气的路径。当我尝试将这些更改应用于脚本时,出现运行时错误:[Errno 9]错误的文件描述符。如果我注释掉导入行,则没有错误。 sys.path.append('my_custom_module_directory') import my_custom_module 你们中的许多人可能会问为什么我不只是使用ArcObjects实现自定义工具。原因是我的最终用户没有在计算机上注册任何dll所必需的特权。 更新:这是在ArcGIS 10中发生的。很有趣的是,我最初是附加到ToolValidator类的initialiazeParameters函数内部的路径。如果我在ToolValidator类的外部(即,在其顶部)进行附加操作,则一切都会按预期进行。 sys.path.append('C:/Working/SomeFolder') import somescript -------->THIS WORKS class ToolValidator: """Class for validating a tool's parameter values and controlling the behavior of the tool's dialog.""" def __init__(self): """Setup arcpy and the list of tool parameters.""" import arcpy sys.path.append('C:/Working/SomeFolder') import somescript -------> THIS DOESNT WORK self.params …