Se você estiver excluindo corretamente os objetos de linha e cursor (por exemplo del row, rows
) e o bloqueio permanecer, é provável que o próprio ArcMap, não o arcpy, ainda esteja fazendo referência a ele.
O shapefile é referenciado por uma camada no índice ou é adicionado ao sumário pela sua ferramenta de script?
Neste último caso, você pode tentar desativar "Adicionar resultados de operações de geoprocessamento à tela" em Geoprocessamento-> Opções de geoprocessamento no ArcMap.
Uma sugestão adicional: se você estiver fazendo isso como um conjunto de dados temporário / intermediário, e o número de recursos não for muito grande, tente usar a área de in_memory
trabalho em vez de um shapefile para solucionar completamente o problema de bloqueio e obter um bom aumento potencial de desempenho também .
Apenas certifique-se de excluir o espaço de trabalho in_memory ou os conjuntos de dados específicos criados por ele usando Excluir (Gerenciamento de Dados) antes de sair do script, caso contrário, ele continuará residindo na memória até que o aplicativo seja fechado.
Por fim, também observaria que o comportamento de bloqueio do shapefile mudou na 10.0 para se tornar mais rigoroso, não removendo os arquivos de bloqueio quando você remove uma camada do sumário. Consulte também este artigo e esta questão relacionada .