Networkx无法找到一些软件包(版本1.10)

时间:2016-01-12 00:28:01

标签: python-2.7 networkx

我正在使用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

1 个答案:

答案 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 providedmin_maximal_matching doc pagesource 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>

尽管如您所见,这也有效。