python - 导入大 iGraph 内存耗尽

标签 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 的操作方式,知道如何快速解决这个问题(或扩展内存)。谢谢。

最佳答案

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


更新: 补丁的 URL 是:

关于python - 导入大 iGraph 内存耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435828/

相关文章:

R(igraph): orientation of edge beginning and ending from same vertex

python - Python 字符串 `\x` 中的前导 `\xaa` 是什么意思

python - PyCharm 无法解析对 PyQT5 模块的引用

java - 从 Java 调用 python 模块时出错

python - 在python中向贝塞尔图添加多条线

python - 导入错误 igraph : undefined symbol

python - 列字段内向量的箱线图 Pandas

r - 优化网络范围功能

r - 使用 iGraph 中的 ego 函数生成连接 Node 列表以通过函数进行解析

r - 使用 R 在 igraph 中解释 watts.strogatz.game() 中的参数