Python 错误:none_dealloc:释放无:可能由 C 扩展中的引用计数错误引起的错误 Python 运行时状态:已初始化

问题描述 投票:0回答:1

所以我使用 python 3.11 和 GDAL python 绑定来迭代 shapefile。

突然,代码在多次迭代中抛出以下错误并终止:

致命的 Python 错误:none_dealloc:释放无:可能由 C 扩展中的引用计数错误引起的错误 Python运行时状态:已初始化

当前线程 0x00007f3ce2f9d740(最近调用优先):

行号发生了变化,但似乎是由于某种原因发生的,其中集合变量将被设置或删除。

它首先死在以下行:

点 = geom.GetPoints()

有点猜测这与集合的设置或释放有关,我在循环末尾添加了以下行,仍在范围内:

删除积分

现在,经过多次循环迭代后,代码就死掉了。

我只能认为这与线程有关,有什么想法吗?有没有办法锁定对象以防万一?

python gdal
1个回答
0
投票

这显然是 GDAL 绑定中的一个错误。因此这个问题可以结束了。当几何类正在轮询点时,如果它不包含点或包含包含点的子类,则会抛出此错误。您必须检查几何类型,否则它将由于某种奇怪的原因而爆炸,而不是类代码检查自身并查看与点相关的数据是否为空,或者只是简单地返回第一个封装类实例的点数据或空集合.

© www.soinside.com 2019 - 2024. All rights reserved.