2015-05-19 3 views
1

Многие из методов, которые, по-видимому, поставляются с NetworkX, похоже, не импортируются. Например, по данным сайта, я должен быть в состоянии использовать:Отсутствуют методы python NetworkX

http://networkx.github.io/documentation/development/reference/generated/networkx.algorithms.dag.transitive_closure.html

метод transitive_closure().

Но когда я запускаю файл python.py,

import networkx as nx 

G = nx.DiGraph() 

G.add_edges_from([ 
    ('a', 'c'), 
    ('b', 'c'), 
    ('c', 'd'), 
]) 

C = nx.transitive_closure(G) 

Я получаю ошибку

C = nx.transitive_closure(G) 
AttributeError: 'module' object has no attribute 'transitive_closure' 

ответ

1

Команда вы используете, кажется, нового в версии развития. Вот текущая документация на dag команды:

https://networkx.github.io/documentation/latest/reference/algorithms.dag.html

Самое простое решение: Вы можете перейти к документации, которую вы нашли (обратите внимание на «развитие» в URL). Затем скопируйте и вставьте команды оттуда в свою версию. Вы можете найти, где ваша версия находится на help(nx.dag). Вам нужно будет удалить некоторые части из вставки для копирования, которые говорят «[doc]», вам придется отредактировать часть __all__, и вам придется удалить команду @not_implemented_for.

Смежные вопросы