Загальний шаблон кодування, який використовується в 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 потрібен єдиний порожній клас функцій, який називається тестом.
Після того, як ви зібрали вищезгадане, запуск інструменту testinner із рядком типу "abc", переданим як його параметр, повинен призвести до того, що "тест" класу функцій буде скопійовано в один званий "abc" ОК.
Але коли ви намагаєтеся запустити інструмент testouter з двома рядками, такими як "uvw" та "xyz", як його параметри, інструмент testinner в межах testouter.py, здається, запуститься один раз в порядку, але посилає ArcMap 10 SP2 на Vista SP2 до серйозної помилки додатка, коли намагаються використати його вдруге.
Один і той же тест з використанням Windows XP SP3 та ArcGIS Desktop 10 SP2 також створює серйозну помилку програми в тій же точці.