Select to view content in your preferred language

Python variable not defined

6434
10
Jump to solution
07-01-2015 10:14 AM
CoyPotts1
Deactivated User

I keep getting an error that says that my variable (region) is not defined.  Please see the code below:

# Set local variables
mapName = str(mxd.filePath).split('\\')[-1:][0][:-4]
region = mapName[:2]
inTable = nodeFeatures
inField = "CUSTRegion"
expression = "Reclass (!CUSTNodeID!, !CUSTRegion!)"
codeBlock = """def Reclass (CUSTNodeID, CUSTRegion):
    if CUSTNodeID != None:
        return region
    else:
        return None"""

# Execute CalculateField
arcpy.CalculateField_management(inTable, inField, expression, "PYTHON_9.3", codeBlock)

The variable "mapName" grabs the name of the map and turns it into a string.  The map name has 4 parts REGION - STATE - PROJECT - CUSTOMER.  The variable "region" takes the mapName variable and grabs the first two characters, which is the abbreviated region code ("NC", "NE", etc...)

I originally had these two variables at the top of the script just under where I import the modules, but I thought that I would move them down closer to the process that uses them hoping it would help (I'm still pretty green with Python so I'm not even sure if it matters where the variable is located).  I put it at the top to begin with because there are A LOT of process in the whole script that use the same variables.

I can run this script in the Python window just fine, but when I create a python tool in a toolbox, I keep getting the error that says that the variable "region" is not defined.  I've tried it with replacing "region" with "mapName[:2]" and that just returns saying that "mapName" is undefined.  I tried using "str(region)" and "str(mapName[:2])" to no avail.

Do I need to move the variables somewhere or change some sort of defining operator or something?

0 Kudos
10 Replies
CoyPotts1
Deactivated User

Thank you kindly for that explanation,

0 Kudos