模块“networkx”没有属性“read_gpickle”

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

我正在尝试运行此代码,该代码使用 networkx 来读取图形 pickle 文件。

def read_graph(self, path=f'./dblp_graph.gpickle'):
    self.g = networkx.read_gpickle(path=path)
    return self.g

当我使用 Jupyter 笔记本运行此代码时,出现以下错误:

模块“networkx”没有属性“read_gpickle”

然后,使用 THIS 文档我测试 networkx.readwrite.gpickle.read_gpickle 并得到此错误。

模块“networkx.readwrite”没有属性“gpickle”

我也尝试过:

print(dir(nx.readwrite))

结果是:

['GraphMLReader'、'GraphMLWriter'、'builtins'、'cached'、'doc'、'file'、'loader'、'name'、'package ', 'path', 'spec', '邻接', 'adjacency_data', 'adjacency_graph', 'adjlist', 'cytoscape', 'cytoscape_data', 'cytoscape_graph', 'edgelist', 'forest_str', 'from_graph6_bytes','from_sparse6_bytes','generate_adjlist','generate_edgelist','generate_gexf','generate_gml','generate_graphml','generate_multiline_adjlist','generate_network_text','generate_pajek','gexf','gml','graph6 ', 'graphml', 'json_graph', 'leda', 'multiline_adjlist', 'node_link', 'node_link_data', 'node_link_graph', 'pajek', 'parse_adjlist', 'parse_edgelist', 'parse_gml', 'parse_graphml', 'parse_leda','parse_multiline_adjlist','parse_pajek','read_adjlist','read_edgelist','read_gexf','read_gml','read_graph6','read_graphml','read_leda','read_multiline_adjlist','read_pajek','read_sparse6 ', 'read_weighted_edgelist', 'relabel_gexf_graph', 'sparse6', 'text', 'to_graph6_bytes', 'to_sparse6_bytes', 'tree', 'tree_data', 'tree_graph', 'write_adjlist', 'write_edgelist', 'write_gexf', 'write_gml','write_graph6','write_graphml','write_graphml_lxml','write_graphml_xml','write_multiline_adjlist','write_network_text','write_pajek','write_sparse6','write_weighted_edgelist']

所以,没有读取/写入pickle文件的功能!

P.s:我还使用“!pip3 install networkx==2.5”强制jupyter使用networkx版本2.5,但没有区别。

python networkx pickle
1个回答
0
投票

在networkx的最新版本中,这种写图的方式已经消失了。 https://networkx.org/documentation/stable/reference/readwrite/index.html# 这是实际的选项。

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