2

我正在尝试导入一个大型 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 操作的人会知道如何快速解决这个问题(或扩展内存)。谢谢。

4

1 回答 1

3

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


更新:补丁的 URL 是:

于 2011-09-16T17:56:06.230 回答