ImportError: cannot import name ‘complete_to_chordal_graph‘解决

文章目录

    • ImportError: cannot import name 'complete_to_chordal_graph'解决
      • 杂话
      • 问题
      • 解决

ImportError: cannot import name 'complete_to_chordal_graph’解决

杂话

大伙儿应该都用过NetworkX这个库函数吧,是一个很方便的图相关的库,但是如果你的版本很老,特别老的话,就可能遇到一些奇怪的问题,比如说这个

问题

ImportError: cannot import name 'complete_to_chordal_graph

当然啦,在这之前,还有很多一长串的,连锁的报错哈。大概意思就是在这个库函数里面,有这么个地方algorithms->tree->decomposition,文件开头的import长这个样子

from itertools import combinations
import networkx as nx
from networkx.algorithms import chordal_graph_cliques, complete_to_chordal_graph, moral
from networkx.utils import not_implemented_for

对,在这里会报错,就是第三行import的那仨玩意儿,前俩都不好使。

解决

其实仔细一想,这个报错还是很诡异的。因为你这个库函数平白无故去导入一个东西发现导入不了,不是很奇怪吗。但是回头再想,他肯定不是变了俩函数出来故意让咱们导入失败,很大概率是有这俩函数的,只不过是位置不对。

好,那么顺着这个思路往下想,很容易就找到了这两个家伙现在躲在哪里了。这俩东西被集成到一个叫chordal.py的文件里面了,那么我们只需要这么修改一下:

import networkx as nx
from networkx.utils import not_implemented_for
from networkx.algorithms import moral
from networkx.algorithms.chordal import * 
from itertools import combinations

OK,解决啦

如果还有什么不同的问题,欢迎在评论区一起讨论呀