我正在使用networkx来计算min_maximal_matching
,它出现了以下错误,我做了pip install networkx --upgrade
,并在version 1.10
上
>>> nx.min_maximal_matching
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'min_maximal_matching'
>>> nx.__version__
'1.10'
只是为了进行健全性检查,我尝试使用同一组函数中的另一种方法(approximation packages),并且它有效,
>>> nx.node_connectivity
<function node_connectivity at 0x10b517410>
谢谢!
PS:我正在使用python 2.7.8
答案 0 :(得分:4)
该功能未在netxwork
命名空间中公开,但如果您导入networkx.algorithms.approximation
,则可以在那里找到它:
In [311]: import networkx.algorithms.approximation as naa
In [312]: naa.min_maximal_matching
Out[319]: <function networkx.algorithms.approximation.matching.min_maximal_matching>
我通过关注the link you provided到min_maximal_matching doc page到source code找到了此信息。
源代码清楚地说明了函数的定义位置:networkx.algorithms.approximation.matching
。
networkx/algorithms/approximation/__init__.py
文件将networkx.algorithms.approximation.matching
命名空间中的所有内容导入networkx.algorthims.approximation
命名空间:
from networkx.algorithms.approximation.matching import *
这就是为什么你可以在导入后停止
import networkx.algorithms.approximation as naa
,而不是像在
中那样向下钻取更远的距离In [307]: import networkx.algorithms.approximation.matching as naam
In [308]: naam.min_maximal_matching
Out[310]: <function networkx.algorithms.approximation.matching.min_maximal_matching>
尽管如您所见,这也有效。