Suite

Le même code python fonctionne dans la fenêtre python d'arcgis, mais échoue dans pyScripter


Ce code fonctionne dans la fenêtre python d'arcgis mais dans PyScripter, ce message d'avertissement avait été écrit :

Traceback (appel le plus récent en dernier) : fichier "", ligne 16, dans le fichier "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpy_init_.py", ligne 1167, dans SearchCursor return gp.searchCursor( dataset, where_clause, spatial_reference, fields, sort_fields) Fichier "C:Program Files (x86)ArcGISDesktop10.2arcpyarcpygeoprocessing_base.py", ligne 359, dans searchCursor self._gp.SearchCursor(*gp_fixargs( args, True))) IOError :

import arcpy arcpy.env.workspace = r"C:Desktopspatial statistics analysis tutorialsPatternAnalysisPatternAnalysisExerciseDengueData.gdb" # place toutes les lignes de la classe d'entités dans un curseur de recherche curseur = arcpy.SearchCursor("IndCases" ) # parcourez le curseur et imprimez les attributs dans la fenêtre interactive # imprimez-le dans un format standard à trois lignes pour la ligne dans cur : print row.AGE

Je me demandais pourquoi cette situation s'est produite, des suggestions?


Cela pourrait être un problème avec le chemin de l'espace de travail. s'il s'agit d'une machine win7, je ne m'attendrais généralement pas à voir un chemin comme

arcpy.env.workspace = r"C:Desktopspatial statistics analysis tutorialsPatternAnalysisPatternAnalysisExerciseDengueData.gdb".

Au lieu de cela, je m'attendrais à un chemin comme

arcpy.env.workspace = r'C:usersYourUserNameDesktop… '

dans un test rapide, j'ai découvert qu'arcpy définirait volontiers l'espace de travail sur un chemin inexistant, pour échouer plus tard car il ne peut pas trouver la classe d'entités.


1) Vous créez un objet SearchCursor qui est affecté à la variablele curseur:

# place toutes les lignes de la classe d'entités dans un curseur de recherche curseur = arcpy.SearchCursor("IndCases")

Mais ensuite, vous essayez d'y accéder en utilisant la variablecuré, qui n'existe pas :

pour la ligne en cur :

Essayez d'utiliserpour la ligne dans le curseurplutôt.

2) Consultez le fichier d'aide arcpy.da.SearchCursor pour une meilleure façon de gérer les curseurs dans ArcGIS 10.2 et versions ultérieures :

avec arcpy.da.SearchCursor(fc, fields) comme curseur : pour la ligne dans le curseur : print(row)