তাই মূলত, পাইথনের ভাষায় এটি যা বলছে, তা হ'ল শেফফাইলটি খোলার আপনার প্রচেষ্টা ব্যর্থ হয়েছিল। যখন osgeo.ogr.Open () এর মতো কিছু ব্যর্থ হয় তখন এটি সাধারণত কিছুই দেয় না, যা আপনার ক্ষেত্রে আপনার ভেরিয়েবল "শেফফাইল" হিসাবে অর্পিত হয়। আপনি পরে শেফফাইলে অ্যাক্সেস করার চেষ্টা করার পরে, এটি আপনাকে জানায় যে শেফফাইলটি "ননটিটাইপ" (ওজিজো যে ধরণের বস্তু তৈরি করেছিল তার চেয়ে বরং) এবং ননটাইপ অবজেক্টগুলিতে গেটলায়ারকাউন্ট পদ্ধতি নেই।
আপনি কিভাবে এই ঠিক করব? প্রথমে আপনার কোডে ত্রুটির জন্য পরীক্ষা করুন - এটি আপনাকে আরও ভাল বার্তা দেবে। কিছুটা এইরকম:
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
সুতরাং, এখন আপনার শ্যাপ ফাইলটি কেন লোড হচ্ছে না এমন প্রশ্নের উত্তর আমাদের দেওয়া দরকার। আমার ধারণাটি হ'ল আপনাকে পুরোপুরি যোগ্য পথ (যেমন, "সি: \ ব্যবহারকারী ... l tl_2009_us_state.shp") সরবরাহ করা প্রয়োজন কারণ ওসিজিও আপনার প্রদত্ত পথটি আপনার শেফফাইলটি খুঁজে পাচ্ছে না। যদিও এটি একটি কুঁচক।