Якщо ви належним чином видалили і об’єкти рядка, і курсор (наприклад del row, rows
), і замок залишається, ймовірно, сам ArcMap, а не arcpy, все ще посилається на нього.
Чи посилається на файл форми шаром у змісті, або він додається до TOC вашим інструментом сценарію?
Якщо останнє, ви можете спробувати відключити "Додавання результатів операцій геообробки на дисплей" у розділі Геопроцедура-> Параметри геопроцедури в ArcMap.
Додаткова пропозиція. Якщо ви робите це як тимчасовий / проміжний набір даних, а кількість функцій не надто велика, спробуйте використовувати in_memory
робочу область замість файлу форм, щоб повністю вирішити проблему блокування та отримати хороше потенційне підвищення продуктивності. .
Просто не забудьте видалити робочу область in_memory або певні набори даних, які ви створюєте там, використовуючи Delete (Управління даними) перед тим, як вийти із сценарію, інакше він буде продовжувати перебувати в пам'яті, поки програма не закриється.
Нарешті, я також зазначу, що поведінка блокування формфайлу змінилася в 10.0, щоб стати більш суворою, не видаляючи файли блокування, коли ви видаляєте шар із змісту. Дивіться також цю статтю та пов’язане з цим питання .