Básicamente, lo que esto está diciendo, en Python, es que su intento de abrir el archivo de forma falló. Cuando algo como osgeo.ogr.Open () falla, generalmente devuelve None, que, en su caso, se asigna a su variable "shapefile". Cuando intente acceder a shapefile más tarde, le indica que shapefile es "NoneType" (en lugar del tipo de objeto que osgeo habría creado) y que los objetos NoneType no tienen el método GetLayerCount.
¿Cómo arreglas esto? Primero, pruebe los errores en su código; le dará mejores mensajes. Algo como:
import osgeo
import osgeo.ogr
try:
shapefile = osgeo.ogr.Open("tl_2009_us_state.shp")
if shapefile: # checks to see if shapefile was successfully defined
numLayers = shapefile.GetLayerCount()
else: # if it's not successfully defined
print "Couldn't load shapefile"
except: # Seems redundant, but if an exception is raised in the Open() call,
# # you get a message
print "Exception raised during shapefile loading"
# if you want to see the full stacktrace - like you are currently getting,
# then you can add the following:
raise
Entonces, ahora debemos responder a la pregunta de por qué su archivo de forma no se está cargando. Supongo que debe proporcionar la ruta totalmente calificada (es decir, "C: \ Users ... \ tl_2009_us_state.shp") porque osgeo no puede encontrar su shapefile con la ruta actualmente proporcionada. Eso es un presentimiento sin embargo.