El modo de depuración de PyCharm genera errores falsos pero se ejecuta normalmente cuando no está en depuración

EDITAR : Retrocedí las versiones de PyCharm y está funcionando de nuevo. CLARAMENTE un problema IDE, no un problema de script ahora. La versión 2017.2.4 de PyCharm es a lo que volví.

Así que tengo un guión que me ha funcionado muy bien, hasta hoy. Por alguna razón, el script se ejecutará bien sin ningún error, siempre y cuando no use PyCharm (Community Edition 2017.3.3) en el modo de depuración. Necesito usar el depurador, así que cuando arroja errores sin motivo y detiene el script, lo convierte en un IDE sin sentido.

La razón por la que sé que esto es un problema de PyCharm es porque copié todo el script en un IDE (Wing) diferente, lo configuré en el mismo intérprete de Python y lo revisé en modo de depuración allí y funcionó bien, sin errores.

He realizado pruebas exhaustivas de errores para asegurarme de que los errores no estén realmente en mi script; Ellos no están. El guión debería funcionar como está escrito. Sigue diciendo que los conjuntos de datos no existen o que las funciones de entrada para las herramientas de arcpy (un progtwig espacial que se engancha en python a través de una biblioteca llamada “arcpy”) no tienen valores cuando lo hacen. No es un problema de script, es un problema IDE.

¿Alguien ha encontrado esto y sabe cómo solucionarlo?

No tengo ninguna configuración de entorno específica, simplemente introduje un intérprete de PyGon de ArcGIS allí para el proyecto, de modo que pudiera tener acceso a la biblioteca de arcpy y eso es todo. Se debe tener en cuenta que este intérprete es python 2.7 porque ArcGIS todavía no es compatible con python 3+. Dudo que tenga algo que ver con eso, pero nunca se sabe …

Esta es una parte del script que causa los problemas (si no tiene / sabe cómo usar ArcGIS, no se moleste en intentar ejecutarlo, no funcionará para usted). Lo que quiero señalar es que si coloco un punto de interrupción en la línea qh_buffer , se interrumpirá después de intentar ejecutar esa línea con un mensaje de error arcpy que indica una entrada / parámetros no válidos (no son válidos, está escrito exactamente como debería be y he comprobado que qhPolys está siendo creado y existe). ENTONCES, si muevo el punto de interrupción a la línea crop_intersect y lo ejecuto en depuración, se ejecuta en todo el código, INCLUYENDO la statement del búfer, pero luego se produce un error con el error 000732 “Características de entrada: Conjunto de datos # 1; # 2 no existe o no es compatible “(ambos existen, porque antes los he codificado en un directorio de salida y están bien creados).

 import arcpy arcpy.env.overwriteOutput = True svyPtFC = r"C:\Users\xxx\GIS_Testing\Crop_Test.shp" select_query = '"FID" = 9' qhPolys = arcpy.Select_analysis(svyPtFC, 'in_memory/qhPolys', select_query) qh_buffer = arcpy.Buffer_analysis(qhPolys, 'in_memory/qh_buffer', '50 Meters') cropFID = '"FID" = 1' cropPoly = arcpy.Select_analysis(svyPtFC, 'in_memory/cropPoly', cropFID) crop_intersect = arcpy.Intersect_analysis([[cropPoly, 1], [qh_buffer, 2]], r'C:\Users\xxx\GIS_Testing\crp_int.shp') feature_count = arcpy.GetCount_management(crop_intersect) print feature_count 

No tiene sentido que pueda causar un error en la línea de búfer si coloco un punto de interrupción cerca de allí, pero si muevo el punto de interrupción más hacia abajo, esa línea se ejecutará bien y se romperá en el siguiente punto de interrupción … Sin embargo, explica por qué funciona cuando simplemente presionas “Ejecutar” en lugar de hacer el modo de depuración. No hay puntos de interrupción!