如何修复NetworkX中API变更引发的OrderedGraph属性错误?
解决NetworkX 'OrderedGraph' 属性错误的方案
出现这个错误是因为NetworkX在新版本中移除了OrderedGraph等有序图类——从Python 3.7开始,字典默认维护插入顺序,NetworkX的普通Graph已经具备了原OrderedGraph的顺序保留功能,因此官方废弃了有序类。
你可以通过以下两种方式解决:
方案一:降级NetworkX到兼容版本
如果你的潮流计算依赖库(比如电力系统仿真类库)还未适配新版NetworkX,直接降级到仍支持OrderedGraph的旧版本即可。比如执行:
pip install networkx==2.3
注:具体版本号可查看你所用库的官方文档或requirements文件,确保版本匹配。
方案二:替换代码中的OrderedGraph为Graph
如果不想降级,找到代码(或你所用依赖库的源码)中调用networkx.OrderedGraph的位置,全部替换为networkx.Graph。例如:
原代码:
import networkx as nx my_graph = nx.OrderedGraph()
修改后:
import networkx as nx my_graph = nx.Graph()
Python 3.7+环境下,Graph会自动维护节点和边的插入顺序,完全替代原OrderedGraph的功能。
额外注意
- 如果你修改的是第三方库的源码,后续更新库时会覆盖你的修改,建议优先选择版本降级,或者向库的开发者提交更新请求,让官方适配新版NetworkX。
- 确保你的Python版本在3.7及以上,否则字典无法保证顺序,替换后的
Graph可能无法保留原有顺序逻辑。
内容的提问来源于stack exchange,提问作者ILKER DURSUN
相关产品推荐
相关产品推荐

