Hi,
When I try to install the toolbar with the Combo box, I have this error :
File "<string>", line 1
SyntaxError: can't assign to operator
Usually i'm able to resolve the syntax error but I have no clue for this one.
Here my code :
import arcpy
import pythonaddins
class LayersComboBoxClass(object):
"""Implementation for Python_Add-In_addin.combo_box (ComboBox)"""
def __init__(self):
self.items = []
self.editable = False
self.enabled = True
self.dropdownWidth = 'WWWWWW'
self.width = 'WWWWWWWWWWWWWWWWWWWW'
def onSelChange(self, selection):
layer = r"S:\Geomatique\Pierre-Luc\SPVM\Corridors_Scolaire\Carto.gdb\Ecoles"
arcpy.SelectLayerByAttribute_management(layer, "NEW_SELECTION", "DESC_LIEU = '" + selection + "'")
arcpy.RefreshActiveView()
def onEditChange(self, text):
pass
def onFocus(self, focused):
self.mxd = arcpy.mapping.MapDocument('current')
layer = arcpy.mapping.ListLayers(self.mxd, "Ecoles")[0]
#self.items = []
values = [row[0] for row in arcpy.da.SearchCursor(layer, ["DESC_LIEU"])]
for uniqueVal in sorted(set(values)):
self.items.append(uniqueVal)
def onEnter(self):
pass
def refresh(self):
passThanks for your help
Solved! Go to Solution.
Hi Pierre-Luc,
I believe the problem may be that you are trying to pass a feature class to the SelectLayerByAttribute function. This requires a feature layer. Try the following:
def onSelChange(self, selection):
layer = r"S:\Geomatique\Pierre-Luc\SPVM\Corridors_Scolaire\Carto.gdb\Ecoles"
arcpy.MakeFeatureLayer_management(layer, "fLayer")
arcpy.SelectLayerByAttribute_management("fLayer", "NEW_SELECTION", "DESC_LIEU = '" + selection + "'")
arcpy.RefreshActiveView()
Hi Pierre-Luc,
I believe the problem may be that you are trying to pass a feature class to the SelectLayerByAttribute function. This requires a feature layer. Try the following:
def onSelChange(self, selection):
layer = r"S:\Geomatique\Pierre-Luc\SPVM\Corridors_Scolaire\Carto.gdb\Ecoles"
arcpy.MakeFeatureLayer_management(layer, "fLayer")
arcpy.SelectLayerByAttribute_management("fLayer", "NEW_SELECTION", "DESC_LIEU = '" + selection + "'")
arcpy.RefreshActiveView()
Hi Jake,
That was a good point for the feature layer but I still have the same error even after the modification.
Thanks you
I get the same exact error with the default python script with no modifications when I add a combo box.
Hi Ben !!
I'm always having this error displaying in the python windows on the first line when I loaded my toolbar but I'm able to execute my function anyways.
Good luck
Yes will testing I can see that the toolbar still executes but my combo boxes and button all show up as missing so I can't really execute it the way I want to.
I've actually found that if I create a simple toolbar with one button with the wizard and immediately build and install it with no code I get the same error and behavior.
Hey,
a bit late but the problem is not in your code, it's in the filename. Your filename probably contains a dash/hyphen '-' or something else python interpreters don't like. Removing the dash/hyphen should solve your problem. You should also take a look at PEP 8 -- Style Guide for Python Code | Python.org | Naming Conventions.
SyntaxError: 'Add-Ins_addin.py'
OK: 'add_ins_addin.py'