脚本工具不创建输出,但在Python窗口中工作

1755
10
跳到解决方案
06-18-2021 10:04
ChrisGAEG
通过
偶然的因素

我有一个简单的脚本,在专业的python窗口中工作得很好。然而,当我将脚本导入到工具中时,流程在第一行geoprocess上失败了。我不明白为什么会发生这种情况,或者为什么在这种情况下从工具运行与python窗口不同。我附上了剧本的截图。任何回应都是非常感谢的!

标签(3)
0荣誉
1解决方案

接受的解决方案
ChrisGAEG
通过
偶然的因素

它工作时,我添加以下行-

Workspace = a.e env. Workspace。MakeFeatureLayer(工作区+"\\DropFiber_SpatialJoin", "DropFiber_SpatialJoin"). getoutput(0)映射。addLayer(层,“顶级”)

工作空间是用户在运行工具之前设置的一个参数。这样,这个工具应该对我发送给的同事有效。祈祷!

在原帖子中查看解决方案

0荣誉
10个回答
DanPatterson
通过 MVP尊敬贡献者
MVP尊敬贡献者

它在第一行就失败了,因为脚本工具不知道aprx是什么。

您的import语句需要位于脚本的顶部,在任何所需的变量定义之前。


…有点退休了……
ChrisGAEG
通过
偶然的因素

谢谢你的回复,丹。我确实有aprx定义,但我不小心没有包括在截图。这里是完整的剧本。我仍然有同样的问题,空间连接没有发生。

0荣誉
ChrisGAEG
通过
偶然的因素

校正,空间连接它只是没有被添加到地图中。我会想办法解决的。

0荣誉
DanPatterson
通过 MVP尊敬贡献者
MVP尊敬贡献者

makefeaturelayer……需要添加到脚本中…或者,之后再添加


…有点退休了……
0荣誉
DanPatterson
通过 MVP尊敬贡献者
MVP尊敬贡献者

克里斯,错误信息是什么?

我习惯了需要在参数对话框中定义参数的传统工具。脚本的第一行将指示立即失败,因为该工具不知道“CURRENT”是什么,但需要一个指向aprx的路径。

也许错误信息将有助于解决问题。我可以看到它在专业人员的python窗口或专业人员的笔记本中工作,但不是作为传统工具或脚本工具(除非您在工具脚本中定义了参数)。


…有点退休了……
0荣誉
ChrisGAEG
通过
偶然的因素

目前没有错误消息。它生成了一个spatialJoin表的excel,但是它跳过了按属性选择的部分,因为连接层没有添加到映射中。如果我在它下面添加线条,它就会添加到映射中,并生成正确的excel导出。但是如果我把这个工具发给别人,我需要弄清楚如何使它工作。makefeaturelayer的图层路径必须是由用户设置的参数。

Lyr = arcpy.management。MakeFeatureLayer(r"Path_to_Layer\\DropFiber_SpatialJoin", "DropFiber_SpatialJoin"). getoutput(0)映射。addLayer(层,“顶级”)

再次感谢你的帮助。

0荣誉
ChrisGAEG
通过
偶然的因素

我想我也解决了进口问题。

0荣誉
DanPatterson
通过 MVP尊敬贡献者
MVP尊敬贡献者

也许可以将一个GDB打包到与工具箱位于相同路径位置的工具箱中,这样更容易定位


…有点退休了……
0荣誉
ChrisGAEG
通过
偶然的因素

它工作时,我添加以下行-

Workspace = a.e env. Workspace。MakeFeatureLayer(工作区+"\\DropFiber_SpatialJoin", "DropFiber_SpatialJoin"). getoutput(0)映射。addLayer(层,“顶级”)

工作空间是用户在运行工具之前设置的一个参数。这样,这个工具应该对我发送给的同事有效。祈祷!

0荣誉