Отже, в Python говорять, що це говорить, це те, що ваша спроба відкрити файл форми не вдалася. Коли щось на зразок osgeo.ogr.Open () виходить з ладу, воно зазвичай повертає None, який, у вашому випадку, присвоюється вашому змінному "shapefile". Якщо ви спробуєте потім отримати доступ до shapefile пізніше, він скаже вам, що файл файлу є "NoneType" (а не тип об'єкта, який створив би osgeo) і що для об'єктів NoneType немає методу GetLayerCount.
Як це виправити? По-перше, перевірити на наявність помилок у вашому коді - це дасть вам кращі повідомлення. Щось на зразок:
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
Отже, тепер нам потрібно відповісти на питання, чому ваш файл форм не завантажується. Я здогадуюсь, що вам потрібно надати повністю кваліфікований шлях (тобто "C: \ Користувачі ... \ tl_2009_us_state.shp"), тому що osgeo не може знайти ваш файл форми з наданим поточним шляхом. Це хоч думка.