Suite

Les outils Python ne s'ouvrent pas lorsque vous cliquez dessus

Les outils Python ne s'ouvrent pas lorsque vous cliquez dessus


Je crée une boîte à outils python dans ArcGIS 10.3 et je rencontre des problèmes pour l'ouvrir dans ArcMap. Je l'ai édité, enregistré et exécuté dans ArcMap pendant tout ce temps pour le tester petit à petit, et maintenant, lorsque je double-clique sur l'outil dans la boîte à outils, il ne répond pas. J'ai vérifié pour m'assurer que je n'ai pas plusieurs scripts en cours d'exécution ou que je ne cache pas la fenêtre contextuelle de l'outil derrière d'autres éléments ouverts sur mon écran. Cela m'amène à croire qu'il y a quelque chose qui ne va pas avec mon script python (ci-dessous).

import arcpy class Toolbox(object): def __init__(self): """Définir la toolbox (le nom de la toolbox est le nom du fichier .pyt).""" self.label = "Toolbox Label Property" self. alias = "Toolbox Alias ​​Property" # Liste des classes d'outils associées à cette toolbox self.tools = [WiFi_Buffer] class WiFi_Buffer(object): def __init__(self): """Définir l'outil (le nom de l'outil est le nom de la classe ).""" self.label = "Buffer WAP" self.description = "Cet outil de script python mettra en mémoire tampon les WAP" self.canRunInBackground = False def getParameterInfo(self): """Define parameters definitions""" param0 = arcpy. Paramètre( displayName="Points d'accès sans fil", name="wap_pts", datatype="GPFeatureLayer", parameterType="Required", direction="Input") param1 = arcpy.Parameter( displayName="Obstruction Layer", name=" obstructions", datatype="GPFeatureLayer", parameterType="Required", direction="Input") params = [param0, param1] return [params] ## def isLicensed(self): ## """Définir si l'outil est sous licence éxécuter." "" ## return True ## ## def updateParameters(self, parameters): ## """Modifiez les valeurs et les propriétés des paramètres avant la validation interne ##. Cette méthode est appelée chaque fois qu'un paramètre ## a été modifié.""" ## return ## ## def updateMessages(self, parameters): ## """Modifier les messages créés par validation interne pour chaque paramètre de l'outil ##. Cette méthode est appelée après validation interne.""" ## return ## ## def execute(self, parameters, messages): ## """Le code source de l'outil.""" ## return

J'ai laissé les parties que je n'ai pas encore atteintes en commentaire, et le premier paramètre s'est très bien exécuté, ce n'est qu'en essayant de créer le deuxième paramètre (param1) que l'outil ne s'exécuterait pas. Je ne vois rien de mal avec le code, mais je suis nouveau dans la création d'outils python, il pourrait donc y avoir quelque chose qui ne va pas. Des idées sur la façon dont je peux faire fonctionner à nouveau l'outil?


Je l'ai compris. Plutôt que de configurer une nouvelle variable "params" et de conserver les multiples paramètres à renvoyer à travers cela, je l'ai simplement simplifié pour renvoyer les paramètres directement comme indiqué ci-dessous.

return [param0, param1]

Maintenant, il charge l'outil lorsque vous cliquez dessus avec les deux paramètres correctement affichés. Je suppose qu'il est préférable de rester simple parfois. Merci pour l'entrée tous.