导入大型iGraph内存耗尽

时间:2011-09-15 18:43:08

标签: python igraph

我正在尝试导入一个大型LGL文件(~2GB),我试图在igraph中导入它

graph = Graph.Read_Lgl("Biggraph.lgl")

它抛出的错误是

Traceback (most recent call last):
  File "graph.py", line8, in <module>
    graph = Graph.Read_Lgl("Biggraph.lgl")
igraph.core.InternalError: Error at foreign.c:359: Parse error in LGL file, line 9997 (memory exhausted), Parse Error

我不确定这里到底发生了什么。内存耗尽错误让我觉得分配给python(或底层C)的内存在尝试读取文件时正在用尽,但它几乎发生立即,就像它甚至没有试图做很多事。也许它正在查看文件大小并说“哇,不能那样做。”

说真的,我不知道发生了什么。我从iGraph中假设它可以处理非常大的图形,我不认为我的图形太大了。

我自己生成了lgl文件,但我相信我的语法正确。这个错误似乎并不像我的lgl文件有问题,但我可能是错的(“解析错误”让我很害怕。)

我想我会在这里试试,看看是否有人更热衷于iGraph如何操作会知道如何快速解决这个问题(或扩展内存)。感谢。

1 个答案:

答案 0 :(得分:3)

为了记录,海报在igraph库中发现了一个错误,我们现在正在修复。问题是由LGL格式的bison解析器规范中的右递归规则引起的。一旦我们在项目的主干中有一个正式的补丁,如果其他人遇到同样的问题,我会在这里发布补丁的URL。


<强>更新: 补丁的URL是: