ImportError:无法导入名称'treewidth'

时间:2019-04-13 14:19:01

标签: python networkx

我一直在尝试从NetworkX库中导入必要的模块,但是它总是抛出ImportError或AttributeError。

我正在为最后一年的项目使用NetworkX库,并且我想使用this function计算给定图的树宽分解,而我需要其他功能的值。

我尝试了以下操作:

  1. 最初,我尝试导入documentation
  2. 中建议的方式
import networkx as nx 
from networkx.algorithms import approximation

G = nx.barbell_graph(5, 1)

decom = approximation.treewidth_min_fill_in(G)

但这只会给我以下错误:

AttributeError: module 'networkx.algorithms.approximation' has no attribute 'treewidth_min_fill_in'
  1. 我还尝试使用以下方式直接导入它:
import networkx as nx

G = nx.barbell_graph(5, 1)

decom = nx.algorithms.approximation.treewidth.treewidth_min_fill_in(G) 

但这只会给我以下错误:

AttributeError: module 'networkx.algorithms.approximation' has no attribute 'treewidth'
  1. 然后,我找到了一种可能的解决方案here,它仅在有团伙情况下有效,而在尝试导入“树宽”时无效。
import networkx as nx 
from networkx.algorithms.approximation import treewidth

G = nx.barbell_graph(5, 1)

decom = treewidth.treewidth_min_fill_in(G)

但这只会给我以下错误:

ImportError: cannot import name 'treewidth'

我没有成功找到解决方案。任何帮助表示赞赏!

注意:这是我关于SO的第一个问题,因此,请提供有关此问题格式的任何其他反馈。

2 个答案:

答案 0 :(得分:0)

您使用哪个版本的networkx软件包以及如何安装它?

我尝试做pip install networkx,然后使用Python 3.7执行您的代码:

import networkx as nx 
from networkx.algorithms import approximation

G = nx.barbell_graph(5, 1)

decom = approximation.treewidth_min_fill_in(G)
print(decom)

,输出为:

(4, <networkx.classes.graph.Graph object at 0x1070d4ef0>)

您可以尝试使用以下方法查看模块的版本:

import networkx
print(networkx.__version__)

以及使用了哪些方法:

import networkx
from networkx.algorithms import approximation

print(dir(approximation))

答案 1 :(得分:0)

如果已安装networkx,请运行pip install networkxpip install --upgrade networkx,然后使用Python 3.7执行代码:

import networkx

from networkx.algorithms.approximation import treewidth

treewidth.treewidth_min_fill_in()

这在我的系统上工作正常。希望这能解决您的问题