使用ArcPy在另一个Python脚本中运行Python脚本(带有参数)?
AML中使用的一种常见编码模式是在另一个AML中运行AML(带有参数)。 我当前正在开发的应用程序将从能够在另一个Python脚本中运行Python脚本(带有参数)中受益。 但是,这似乎一点也不简单。 使用ArcGIS 10,我正在尝试将“内部” Python脚本包装到具有参数的ArcGIS工具中。我认为让“外部” Python脚本使用arcpy.ImportToolbox导入工具箱,然后在其中运行工具将是一件简单的事情。但是,到目前为止,在测试中,我从“外部”脚本运行“内部”工具的所有尝试似乎只是跳过了“内部”工具(不会引发任何错误)。 这是一些测试代码,试图更好地说明我要描述的内容。 我的testinner.py脚本是: inputString = arcpy.GetParameterAsText(0) newFC = "C:\\Temp\\test.gdb\\" + inputString arcpy.Copy_management("C:\\Temp\\test.gdb\\test",newFC) 我的testouter.py脚本是: import arcpy inputString1 = arcpy.GetParameterAsText(0) inputString2 = arcpy.GetParameterAsText(1) arcpy.ImportToolbox("C:\\Temp\\test.tbx") arcpy.testinner_test(inputString1) arcpy.testinner_test(inputString2) 对于testinner.py,其工具需要单个String参数。 对于testouter.py,其工具需要两个String参数 这两个工具放置在test.tbx中。 test.gdb仅需要一个名为test的空要素类。 完成上述组装后,使用传入的字符串(例如abc)作为参数运行testinner工具,应将要素类“ test”复制到一个名为“ abc”的OK。 但是,当您尝试使用两个字符串(例如'uvw'和'xyz')作为参数运行testouter工具时,testouter.py中的testinner工具似乎运行一次,但是在以下情况下将Vista SP2上的ArcMap 10 SP2发送给严重应用程序错误:尝试第二次使用它。 使用Windows XP SP3和ArcGIS Desktop 10 SP2进行的同一测试也会在同一点产生严重的应用程序错误。