所以我使用 python 3.11 和 GDAL python 绑定来迭代 shapefile。
突然,代码在多次迭代中抛出以下错误并终止:
致命的 Python 错误:none_dealloc:释放无:可能由 C 扩展中的引用计数错误引起的错误 Python运行时状态:已初始化
当前线程 0x00007f3ce2f9d740(最近调用优先):
行号发生了变化,但似乎是由于某种原因发生的,其中集合变量将被设置或删除。
它首先死在以下行:
点 = geom.GetPoints()
有点猜测这与集合的设置或释放有关,我在循环末尾添加了以下行,仍在范围内:
删除积分
现在,经过多次循环迭代后,代码就死掉了。
我只能认为这与线程有关,有什么想法吗?有没有办法锁定对象以防万一?
这显然是 GDAL 绑定中的一个错误。因此这个问题可以结束了。当几何类正在轮询点时,如果它不包含点或包含包含点的子类,则会抛出此错误。您必须检查几何类型,否则它将由于某种奇怪的原因而爆炸,而不是类代码检查自身并查看与点相关的数据是否为空,或者只是简单地返回第一个封装类实例的点数据或空集合.