Temel olarak, Python'da bunun söylediği şey, şekil dosyasını açma girişiminizin başarısız olmasıdır. Osgeo.ogr.Open () gibi bir şey başarısız olduğunda, genellikle sizin durumunuzda değişken "shapefile" değişkeninize atanan None değerini döndürür. Daha sonra şekil dosyasına erişmeye çalıştığınızda, şekil dosyasının "NoneType" (osgeo'nun oluşturacağı nesne türü yerine) olduğunu ve NoneType nesnelerinin GetLayerCount yöntemine sahip olmadığını söyler.
Bunu nasıl düzeltirsiniz? İlk olarak, kodunuzdaki hataları test edin - size daha iyi mesajlar verecektir. Gibi bir şey:
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
Şimdi, şekil dosyanızın neden yüklenmediği sorusunu yanıtlamamız gerekiyor. Tahminimce osgeo şu anda sağlanan yolla şekil dosyanızı bulamadığı için tam yol (örneğin, "C: \ Kullanıcılar ... \ tl_2009_us_state.shp") sağlamanız gerekiyor. Yine de bu bir önsezi.