この非常に短いスクリプトをUbuntuで実行するとsegfaultを受け取ります。PythonでOGR CreateField()を使用した場合のセグメンテーションフォールト(segfault)
from osgeo import ogr, osr
shpfile = 'Census_County_TIGER00_IN.shp'
def cust_field(field):
'''cust_field(shpfile, field) creates a field definition, which, by calling cust_field(), can be used to create a field using the CreateField() function.
cust_field() DOES NOT create a field -- it simply creates a "model" for a field, that can then be called later. It's weird, but that's GDAL/OGR, as far as I can tell.'''
fieldDefn = ogr.FieldDefn(field, ogr.OFTInteger)
fieldDefn.SetWidth(14)
fieldDefn.SetPrecision(6)
return fieldDefn
ds = ogr.Open(shpfile, 1)
lyr = ds.GetLayerByIndex(0)
field = cust_field("Test")
lyr.CreateField(field)
すべてはその最後の行、iPython、通常のシェルのPythonとIDLEコマンドラインセグメンテーションフォールトのすべてのダンプまでスムーズに実行されます。これは私の最後のエラーか、根底にあるCの問題ですか?私は適切に対処していませんか?
osgeoにバグを報告してください。 Pythonプログラムは決してコアをダンプしてはいけません。 – nmichaels